вторник, 21 апреля 2015 г.

понедельник, 20 апреля 2015 г.

Наименование метода

http://nullpro.info/2011/opredelyaem-nazvanie-metoda-i-klassa-vypolnyayushhixsya-v-dannyj-moment/


Определить название метода можно с помощью метода MethodBase.GetCurrentMethodили аналогичного метода класса MethodInfo
string currMethodName = System.Reflection.MethodBase.GetCurrentMethod().Name;
//то же самое
currMethodName =  System.Reflection.MethodInfo.GetCurrentMethod().Name;
Оба метода возвращают одно и то же значение. Какой использовать? GetCurrentMethod() - это общий (shared) метод классов MethodBase и MethodInfo. Но класс MethodInfo является производным от класса MethodBase и просто наследует GetCurrentMethod() без изменений. Таким образом лучше использовать метод исходного класса MethodBase.GetCurrentMethod() - если не вдаваться в технические сложности, по нему проще найти документацию, то есть код будет более понятнее(более подробно на bytes.com).
Название класса, к которому принадлежит текущий обьект
this.GetType().ToString()

пятница, 17 апреля 2015 г.

Uri

Uri Encode

http://www.dotnetperls.com/uri

http://stackoverflow.com/questions/575440/url-encoding-using-c-sharp

https://msdn.microsoft.com/ru-ru/library/System.Web.HttpServerUtility(v=vs.110).aspx

https://msdn.microsoft.com/ru-ru/library/system.web.httputility(v=vs.110).aspx


QueryString
UrlEncoding
using System;
using System.Collections.Generic;
using System.Text;
// Need to add a Reference to the System.Web assembly.
using System.Web;

namespace UriEncodingDEMO2
{
    class Program
    {
        static void Main(string[] args)
        {
            EncodeStrings();

            Console.WriteLine();
            Console.WriteLine("Press any key to continue...");
            Console.Read();
        }

        public static void EncodeStrings()
        {
            string stringToEncode = "ABCD" + "abcd"
            + "0123" + " !\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~" + "ĀāĒēĪīŌōŪū";

            // Need to set the console encoding to display non-ASCII characters correctly (eg the 
            //  Latin A-Extended characters such as ĀāĒē...).
            Console.OutputEncoding = Encoding.UTF8;

            // Will also need to set the console font (in the console Properties dialog) to a font 
            //  that displays the extended character set correctly.
            // The following fonts all display the extended characters correctly:
            //  Consolas
            //  DejaVu Sana Mono
            //  Lucida Console

            // Also, in the console Properties, set the Screen Buffer Size and the Window Size 
            //  Width properties to at least 140 characters, to display the full width of the 
            //  table that is generated.

            Dictionary<string, Func<string, string>> columnDetails =
                new Dictionary<string, Func<string, string>>();
            columnDetails.Add("Unencoded", (unencodedString => unencodedString));
            columnDetails.Add("UrlEncoded",
                (unencodedString => HttpUtility.UrlEncode(unencodedString)));
            columnDetails.Add("UrlEncodedUnicode",
                (unencodedString => HttpUtility.UrlEncodeUnicode(unencodedString)));
            columnDetails.Add("UrlPathEncoded",
                (unencodedString => HttpUtility.UrlPathEncode(unencodedString)));
            columnDetails.Add("EscapedDataString",
                (unencodedString => Uri.EscapeDataString(unencodedString)));
            columnDetails.Add("EscapedUriString",
                (unencodedString => Uri.EscapeUriString(unencodedString)));
            columnDetails.Add("HtmlEncoded",
                (unencodedString => HttpUtility.HtmlEncode(unencodedString)));
            columnDetails.Add("HtmlAttributeEncoded",
                (unencodedString => HttpUtility.HtmlAttributeEncode(unencodedString)));
            columnDetails.Add("HexEscaped",
                (unencodedString
                    =>
                    {
                        // Uri.HexEscape can only handle the first 255 characters so for the 
                        //  Latin A-Extended characters, such as A, it will throw an 
                        //  ArgumentOutOfRange exception.                       
                        try
                        {
                            return Uri.HexEscape(unencodedString.ToCharArray()[0]);
                        }
                        catch
                        {
                            return "[OoR]";
                        }
                    }));

            char[] charactersToEncode = stringToEncode.ToCharArray();
            string[] stringCharactersToEncode = Array.ConvertAll<char, string>(charactersToEncode,
                (character => character.ToString()));
            DisplayCharacterTable<string>(stringCharactersToEncode, columnDetails);
        }

        private static void DisplayCharacterTable<TUnencoded>(TUnencoded[] unencodedArray,
            Dictionary<string, Func<TUnencoded, string>> mappings)
        {
            foreach (string key in mappings.Keys)
            {
                Console.Write(key.Replace(" ", "[space]") + " ");
            }
            Console.WriteLine();

            foreach (TUnencoded unencodedObject in unencodedArray)
            {
                string stringCharToEncode = unencodedObject.ToString();
                foreach (string columnHeader in mappings.Keys)
                {
                    int columnWidth = columnHeader.Length + 1;
                    Func<TUnencoded, string> encoder = mappings[columnHeader];
                    string encodedString = encoder(unencodedObject);

                    // ASSUMPTION: Column header will always be wider than encoded string.
                    Console.Write(encodedString.Replace(" ", "[space]").PadRight(columnWidth));
                }
                Console.WriteLine();
            }
        }
    }
}

воскресенье, 5 апреля 2015 г.

EntityFramework [DatabaseGenerated(DatabaseGeneratedOption.Computed)]

http://stackoverflow.com/questions/23413625/entity-framework-default-datetime-annotation-does-not-migrate


 AddColumn("dbo.Specialty", 
                  "CreatedDate", 
                  c => c.DateTime(defaultValueSql: "GETDATE()"));

Отменить Migration и включить автоматическую Migration

http://stackoverflow.com/questions/11679385/reset-entity-framework-migrations

You need to delete the state:
  1. Delete the migrations folder in your project
  2. Delete the __MigrationHistory table in your database (may be under system tables)
Then run the following command in the Package Manager Console:
Enable-Migrations -EnableAutomaticMigrations -Force
And finally, you can run:
Add-Migration Initial

среда, 1 апреля 2015 г.

Layout in MVC

MBC Tutorial

MVC partial view update with Ajax