Esempio n. 1
0
        public static DateTime LastDayOfWeek(DateTime date)
        {
            int weekStartOffset = 0;

            if (OrganizationServiceProxy.OrganizationSettings != null)
            {
                weekStartOffset = OrganizationServiceProxy.OrganizationSettings.WeekStartDayCode.Value.Value;
            }

            DateTime endOfWeek = new DateTime(date.GetTime());

            int dayOfWeek = endOfWeek.GetDay();

            dayOfWeek = dayOfWeek - weekStartOffset;
            if (dayOfWeek < 0)
            {
                dayOfWeek = 7 + dayOfWeek;
            }


            endOfWeek = DateTimeEx.DateAdd(DateInterval.Days, (int)(6 - dayOfWeek), endOfWeek);


            endOfWeek.SetHours(23);
            endOfWeek.SetMinutes(59);
            endOfWeek.SetSeconds(59);
            endOfWeek.SetMilliseconds(999);
            return(endOfWeek);
        }
Esempio n. 2
0
        public static DateTime FirstDayOfWeek(DateTime date)
        {
            int weekStartOffset = 0;

            if (OrganizationServiceProxy.OrganizationSettings != null)
            {
                weekStartOffset = OrganizationServiceProxy.OrganizationSettings.WeekStartDayCode.Value.Value;
            }

            DateTime startOfWeek = new DateTime(date.GetTime());
            int      dayOfWeek   = startOfWeek.GetDay();

            dayOfWeek = dayOfWeek - weekStartOffset;
            if (dayOfWeek < 0)
            {
                dayOfWeek = 7 + dayOfWeek;
            }

            if (dayOfWeek > 0)
            {
                startOfWeek = DateTimeEx.DateAdd(DateInterval.Days, (int)(dayOfWeek * -1), startOfWeek);
            }

            startOfWeek.SetHours(0);
            startOfWeek.SetMinutes(0);
            startOfWeek.SetSeconds(0);
            startOfWeek.SetMilliseconds(0);
            return(startOfWeek);
        }
Esempio n. 3
0
        public static DateTime DateAdd(DateInterval interval, int value, DateTime date)
        {
            int      ms = date.GetTime();
            DateTime result;

            switch (interval)
            {
            case DateInterval.Milliseconds:
                result = new DateTime(ms + value);
                break;

            case DateInterval.Seconds:
                result = new DateTime(ms + (value * 1000));
                break;

            case DateInterval.Minutes:
                result = new DateTime(ms + (value * 1000 * 60));
                break;

            case DateInterval.Hours:
                result = new DateTime(ms + (value * 1000 * 60 * 60));
                break;

            case DateInterval.Days:
                result = new DateTime(ms + (value * 1000 * 60 * 60 * 24));
                break;

            default:
                result = date;
                break;
            }

            return(result);
        }
Esempio n. 4
0
        public static DateTime FirstDayOfMonth(DateTime date, int Month)
        {
            DateTime startOfMonth = new DateTime(date.GetTime());

            startOfMonth.SetMonth(Month - 1);
            startOfMonth.SetDate(1);
            startOfMonth.SetHours(0);
            startOfMonth.SetMinutes(0);
            startOfMonth.SetSeconds(0);
            startOfMonth.SetMilliseconds(0);
            return(startOfMonth);
        }
Esempio n. 5
0
        public static DateTime LastDayOfWeek(DateTime date)
        {
            DateTime endOfWeek = new DateTime(date.GetTime());
            int      dayOfWeek = endOfWeek.GetDay();

            if (dayOfWeek > 0)
            {
                endOfWeek = DateTimeEx.DateAdd(DateInterval.Days, (int)(7 - dayOfWeek), endOfWeek);
            }

            endOfWeek.SetHours(23);
            endOfWeek.SetMinutes(59);
            endOfWeek.SetSeconds(59);
            endOfWeek.SetMilliseconds(999);
            return(endOfWeek);
        }
Esempio n. 6
0
        public static DateTime FirstDayOfWeek(DateTime date)
        {
            DateTime startOfWeek = new DateTime(date.GetTime());
            int      dayOfWeek   = startOfWeek.GetDay();

            if (dayOfWeek > 0)
            {
                startOfWeek = DateTimeEx.DateAdd(DateInterval.Days, (int)(dayOfWeek * -1), startOfWeek);
            }

            startOfWeek.SetHours(0);
            startOfWeek.SetMinutes(0);
            startOfWeek.SetSeconds(0);
            startOfWeek.SetMilliseconds(0);
            return(startOfWeek);
        }
Esempio n. 7
0
 public static DateTime AddTimeToDate(DateTime date, string time)
 {
     if (date == null)
     {
         date = DateTime.Now;
     }
     if (time != null)
     {
         DateTime dateWithTime = DateTime.Parse("01 Jan 2000 " + time.Replace(".", ":").Replace("-", ":").Replace(",", ":"));
         DateTime newDate      = new DateTime(date.GetTime());
         if (!Number.IsNaN((Number)((object)dateWithTime)))
         {
             newDate.SetHours(dateWithTime.GetHours());
             newDate.SetMinutes(dateWithTime.GetMinutes());
             newDate.SetSeconds(dateWithTime.GetSeconds());
             newDate.SetMilliseconds(dateWithTime.GetMilliseconds());
             return(newDate);
         }
         return(null);
     }
     return(date);
 }
Esempio n. 8
0
        public static object DeSerialise(XmlNode node, string overrideType)
        {
            // Check if the value is null
            bool   isNil = (XmlHelper.GetAttributeValue(node, "i:nil") == "true");
            object value = null;

            if (!isNil)
            {
                string typeName = overrideType;
                if (typeName == null)
                {
                    typeName = _removeNsPrefix(XmlHelper.GetAttributeValue(node, "i:type"));
                }

                string stringValue = XmlHelper.GetNodeTextValue(node);
                switch (typeName)
                {
                case AttributeTypes.EntityReference:
                    EntityReference entityReferenceValue = new EntityReference(
                        new Guid(XmlHelper.SelectSingleNodeValue(node, "Id")),
                        XmlHelper.SelectSingleNodeValue(node, "LogicalName"),
                        XmlHelper.SelectSingleNodeValue(node, "Name"));

                    value = entityReferenceValue;
                    break;

                case AttributeTypes.AliasedValue:
                    value = DeSerialise(XmlHelper.SelectSingleNode(node, "Value"), null);
                    break;

                case AttributeTypes.Boolean_:
                    value = (stringValue == "true");
                    break;

                case AttributeTypes.Decimal_:
                    value = decimal.Parse(stringValue);
                    break;

                case AttributeTypes.DateTime_:
                    DateTime dateValue = DateTimeEx.Parse(stringValue);

                    // We need it in the CRM Users timezone
                    UserSettings settings = OrganizationServiceProxy.UserSettings;
                    if (settings != null)
                    {
                        // Remove the local date formating so that it is in UTC irrespective of the local timezone
                        dateValue.SetTime(dateValue.GetTime() + (dateValue.GetTimezoneOffset() * 60 * 1000));

                        DateTime localDateValue = DateTimeEx.UTCToLocalTimeFromSettings(dateValue, settings);
                        value = localDateValue;
                    }
                    else
                    {
                        value = dateValue;
                    }

                    break;

                case "guid":
                    value = new Guid(stringValue);
                    break;

                case AttributeTypes.Int_:
                    value = int.Parse(stringValue);
                    break;

                case AttributeTypes.OptionSetValue:
                    value = OptionSetValue.Parse(XmlHelper.SelectSingleNodeValue(node, "Value"));
                    break;

                case AttributeTypes.Money:
                    value = new Money(decimal.Parse(XmlHelper.SelectSingleNodeValue(node, "Value")));
                    break;

                default:
                    value = stringValue;
                    break;
                }
            }
            return(value);
        }