Search This Blog

Tuesday, January 21, 2014

Directory class C#

C# > Files > Directory






Directory class offers methods for operations like move, copy, rename, create, and delete directories.








    Check User Has Write Permission on Folder C#

    C# > Files > DirectoryGetAccessControl

    GetAccessControl: returns the Windows access control list (ACL) for a directory
    GetAccessRules: gets a collection of the access rules associated with the specified security identifier

    Example: check write permission on folder

    public static bool HasWritePermission(string dir)
            {
                bool Allow = false;
                bool Deny = false;
                DirectorySecurity  acl = null;
                try
                {
                    acl = Directory.GetAccessControl(dir);
                }
                catch (System.IO.DirectoryNotFoundException)
                {
                    throw new Exception("DirectoryNotFoundException");
                }
                if (acl == null)
                    return false;
                AuthorizationRuleCollection  arc = acl.GetAccessRules(true, true, typeof(System.Security.Principal.SecurityIdentifier));
                if (arc == null)
                    return false;
                foreach (FileSystemAccessRule rule in arc)
                {
                    if ((FileSystemRights.Write & rule.FileSystemRights) != FileSystemRights.Write)
                        continue;
                    if (rule.AccessControlType == AccessControlType.Allow)
                        Allow = true;
                    else if (rule.AccessControlType == AccessControlType.Deny)
                        Deny = true;
                }
                return Allow && !Deny;
            }








    Monday, January 20, 2014

    SQL Server Data Types

    SQL Server > Data Types

    A data type is an attribute that specifies the type of data that the object can hold.

    Exact Numerics





    XML exist XQuery SQL Server example

    SQL Server > XML > Methods > exist()

    Syntax

              exist (XQuery)

    Returns

    • 1 : XQuery expression in a query returns a nonempty result
    • 0 : XQuery expression in a query returns an empty result.
    • NULL : if target NULL.

    Example: Find specific node in XML


    DECLARE @data  XML
    .... you xml 

    SELECT @data.exist('(//item1)') 'Item1 exists', @data.exist('(//item3)') 'Item3 exists'
    Results:







    Add computed column SQL Server

    SQL Server > DDL > Alter > Add computed column




    You can add computed column with AS keyword followed by your computed formula.
    Note: the computed column cannot be updated!

    CREATE TABLE #tmp
    (
         [hours] float,
         [rate]  float
    )
    ALTER TABLE #tmp ADD salary AS ([hours] * [rate])
    INSERT INTO #tmp([hours], [rate])
    SELECT 160, 10
    UNION
    SELECT 180, 12
    SELECT * FROM #tmp
    --The column "salary" cannot be modified because it is either a computed column or is the result of a UNION operator.
    --update  #tmp
    --set salary = salary *1.14
    drop table #tmp







    SQL Server Catalog Views

    SQL Server > Catalog Views

    Catalog views return information that is used by the SQL Server Database Engine.
    • It is recommend that you query the catalog views instead of system tables
    • It is recommend using SELECT * FROM sys.catalog_view_name because the number of columns returned might change
    List of catalog views:




    Check the Status of E-Mail Messages SQL Server

    SQL Server > Catalog Views > Database mail sysmail_faileditems

    In this SQL example will find information about any emails could not send successfully.


    SELECT fi.subject, fi.last_mod_date,lg.description

    FROM
       dbo.sysmail_faileditems as fi
    INNER JOIN dbo.sysmail_event_log AS lg
    ON fi.mailitem_id = lg.mailitem_id