Example #1
0
        public ActionResult Zone(int timeZoneId, int colNr)
        {
            var tzpvm = CreateViewModel <TimeZonePropertiesViewModel>();

            Mapper.Map(_userTimeZonePropertyRepository.FindAll(x => x.UserTimeZoneId == timeZoneId && x.OrderInGroup == colNr).FirstOrDefault(), tzpvm);
            return(PartialView(tzpvm));
        }
Example #2
0
        /*   public void SynchonizeUserTimeZones(int userId)
         * {
         *     int[] userTimeZoneIds = (from utz in _userTimeZoneRepository.FindAll(x => !x.IsDeleted && x.UserId == userId && x.TimeZoneId.HasValue) select utz.TimeZoneId.Value).ToArray();
         *     int[] commonTimeZoneIds = (from tz in _timeZoneRepository.FindAll(x => !x.IsDeleted) select tz.Id).ToArray();
         *     int[] copyTimeZoneIds = (from id in commonTimeZoneIds where !userTimeZoneIds.Contains(id) select id).ToArray();
         *     string loginName = _userRepository.FindById(userId).LoginName;
         *
         *     foreach (int id in copyTimeZoneIds)
         *     {
         *         var tz = _timeZoneRepository.FindById(id);
         *         var createTz = true;
         *         if( CurrentUser.Get().IsCompanyManager )
         *         {
         *             var utz = tz.UserTimeZones.Where(x => !x.IsDeleted && x.IsCompanySpecific).FirstOrDefault();
         *
         *             if( utz != null )
         *             {
         *                 var user = _userRepository.FindById(utz.UserId);
         *                 if( user.CompanyId != CurrentUser.Get().CompanyId )
         *                 {
         *                     createTz = false;
         *                 }
         *             }
         *         }
         *
         *         if( createTz )
         *         {
         *             using (IUnitOfWork work = UnitOfWork.Begin())
         *             {
         *                 UserTimeZone userTimeZone = DomainObjectFactory.CreateUserTimeZone();
         *                 //TimeZone timeZone = new //_timeZoneRepository.FindById(id);
         *
         *                 userTimeZone.UserId = userId;
         *                 //userTimeZone.TimeZoneId = timeZone.Id;           Edit Later
         *                 userTimeZone.ParentUserTimeZoneId = null;
         *                 //userTimeZone.Name = timeZone.Name;
         *                 userTimeZone.Uid = Guid.NewGuid();
         *                 userTimeZone.IsOriginal = true;
         *                 userTimeZone.IsDeleted = false;
         *                 userTimeZone.IsCompanySpecific = false;
         *
         *                 var tzProperties = _timeZonePropertyRepository.FindAll(x => x.TimeZoneId == timeZone.Id).ToList();
         *
         *                 foreach (var tzp in tzProperties)
         *                 {
         *                     UserTimeZoneProperty utzp = DomainObjectFactory.CreateUserTimeZoneProperty();
         *
         *                     utzp.UserTimeZoneId = userTimeZone.Id;
         *                     utzp.TimeZoneId = tzp.TimeZoneId;
         *                     utzp.OrderInGroup = tzp.OrderInGroup;
         *                     utzp.ValidFrom = tzp.ValidFrom;
         *                     utzp.ValidTo = tzp.ValidTo;
         *                     utzp.IsMonday = tzp.IsMonday;
         *                     utzp.IsTuesday = tzp.IsTuesday;
         *                     utzp.IsWednesday = tzp.IsWednesday;
         *                     utzp.IsThursday = tzp.IsThursday;
         *                     utzp.IsFriday = tzp.IsFriday;
         *                     utzp.IsSaturday = tzp.IsSaturday;
         *                     utzp.IsSunday = tzp.IsSunday;
         *
         *                     userTimeZone.UserTimeZoneProperties.Add(utzp);
         *
         *                     var message = new XElement(XMLLogLiterals.LOG_MESSAGE);
         *                     message.Add(XMLLogMessageHelper.TemplateToXml("LogMessageUTZPropertyforUTZCreated",
         *                                                                   new List<string> {userTimeZone.Name, loginName}));
         *
         *
         *                     message.Add(XMLLogMessageHelper.TemplateToXml("LogMessageTimeZoneId",
         *                                                                   new List<string> {utzp.TimeZoneId.ToString()}));
         *                     message.Add(XMLLogMessageHelper.TemplateToXml("LogMessageOrderInGroup",
         *                                                                   new List<string> {utzp.OrderInGroup.ToString()}));
         *                     message.Add(XMLLogMessageHelper.TemplateToXml("LogMessageValidFrom",
         *                                                                   new List<string>
         *                                                                     {
         *                                                                         utzp.ValidFrom.HasValue
         *                                                                             ? utzp.ValidFrom.Value.ToString("HH:mm")
         *                                                                             : ""
         *                                                                     }));
         *                     message.Add(XMLLogMessageHelper.TemplateToXml("LogMessageValidTo",
         *                                                                   new List<string>
         *                                                                     {
         *                                                                         utzp.ValidTo.HasValue ? utzp.ValidTo.Value.ToString("HH:mm") : ""
         *                                                                     }));
         *                     message.Add(XMLLogMessageHelper.TemplateToXml("LogMessageIsMonday", new List<string> {utzp.IsMonday.ToString()}));
         *                     message.Add(XMLLogMessageHelper.TemplateToXml("LogMessageIsTuesday", new List<string> {utzp.IsTuesday.ToString()}));
         *                     message.Add(XMLLogMessageHelper.TemplateToXml("LogMessageIsWednesday",
         *                                                                   new List<string> {utzp.IsWednesday.ToString()}));
         *                     message.Add(XMLLogMessageHelper.TemplateToXml("LogMessageIsThursday",
         *                                                                   new List<string> {utzp.IsThursday.ToString()}));
         *                     message.Add(XMLLogMessageHelper.TemplateToXml("LogMessageIsFriday", new List<string> {utzp.IsFriday.ToString()}));
         *                     message.Add(XMLLogMessageHelper.TemplateToXml("LogMessageIsSaturday",
         *                                                                   new List<string> {utzp.IsSaturday.ToString()}));
         *                     message.Add(XMLLogMessageHelper.TemplateToXml("LogMessageIsSunday", new List<string> {utzp.IsSunday.ToString()}));
         *
         *                     _logService.CreateLog(CurrentUser.Get().Id, "web", CurrentUser.Get().HostName, CurrentUser.Get().CompanyId,
         *                                           message.ToString());
         *                 }
         *
         *                 _userTimeZoneRepository.Add(userTimeZone);
         *
         *                 work.Commit();
         *
         *                 var mesage = new XElement(XMLLogLiterals.LOG_MESSAGE);
         *                 mesage.Add(XMLLogMessageHelper.TemplateToXml("LogMessageUserTimeZoneCommonCreated",
         *                                                              new List<string> {userTimeZone.Name, loginName}));
         *                 _logService.CreateLog(CurrentUser.Get().Id, "web", CurrentUser.Get().HostName, CurrentUser.Get().CompanyId, mesage.ToString());
         *                 _controllerUpdateService.CreateControllerUpdate(CurrentUser.Get().Id, userTimeZone.Id, UpdateParameter.UserTimeZoneUpdate, ControllerStatus.Created, userTimeZone.Name);
         *             }
         *         }
         *     }
         * }
         */

        public int CreateUserTimeZone(string name)
        {
            using (IUnitOfWork work = UnitOfWork.Begin())
            {
                UserTimeZone userTimeZone = DomainObjectFactory.CreateUserTimeZone();
                if (CurrentUser.Get().IsCompanyManager)
                {
                    UserTimeZone mtz = _userTimeZoneRepository.FindAll(x => x.CompanyId == null && x.Name == name).First();
                    userTimeZone.TimeZoneId        = mtz.TimeZoneId;
                    userTimeZone.CompanyId         = CurrentUser.Get().CompanyId;
                    userTimeZone.UserId            = CurrentUser.Get().Id;
                    userTimeZone.Name              = name;
                    userTimeZone.Uid               = Guid.NewGuid();
                    userTimeZone.IsOriginal        = false;
                    userTimeZone.IsDeleted         = false;
                    userTimeZone.IsCompanySpecific = CurrentUser.Get().IsCompanyManager;
                    var timezoneprop = (from tzp in _userTimeZonePropertyRepository.FindAll(x => x.UserTimeZoneId == mtz.Id) select tzp);

                    for (int i = 0; i < 4; i++)
                    {
                        var userTimeZoneProperty  = DomainObjectFactory.CreateUserTimeZoneProperty();
                        UserTimeZoneProperty utzp = (from tzp in timezoneprop where tzp.OrderInGroup == i select tzp).First();
                        userTimeZoneProperty.UserTimeZoneId = userTimeZone.Id;
                        userTimeZoneProperty.TimeZoneId     = userTimeZone.TimeZoneId;
                        userTimeZoneProperty.OrderInGroup   = i;
                        userTimeZoneProperty.ValidFrom      = utzp.ValidFrom;
                        userTimeZoneProperty.ValidTo        = utzp.ValidTo;
                        userTimeZoneProperty.IsMonday       = utzp.IsMonday;
                        userTimeZoneProperty.IsTuesday      = utzp.IsTuesday;
                        userTimeZoneProperty.IsWednesday    = utzp.IsWednesday;
                        userTimeZoneProperty.IsThursday     = utzp.IsThursday;
                        userTimeZoneProperty.IsFriday       = utzp.IsFriday;
                        userTimeZoneProperty.IsSaturday     = utzp.IsSaturday;
                        userTimeZoneProperty.IsSunday       = utzp.IsSunday;

                        userTimeZone.UserTimeZoneProperties.Add(userTimeZoneProperty);
                    }
                }
                else
                {
                    var userTimeZoneIds = (from tz in _userTimeZoneRepository.FindAll(x => x.IsDeleted == true && x.CompanyId == null) select tz);
                    if (userTimeZoneIds.Count() != 0)
                    {
                        userTimeZoneIds.First().Name      = name;
                        userTimeZoneIds.First().IsDeleted = false;
                    }
                    else
                    {
                        var maxid = (from tz in _userTimeZoneRepository.FindAll() where tz.CompanyId == null select tz.TimeZoneId).Max();
                        userTimeZone.CompanyId         = CurrentUser.Get().IsSuperAdmin ? null : CurrentUser.Get().CompanyId;
                        userTimeZone.UserId            = CurrentUser.Get().Id;
                        userTimeZone.Name              = name;
                        userTimeZone.Uid               = Guid.NewGuid();
                        userTimeZone.IsOriginal        = true;
                        userTimeZone.IsDeleted         = false;
                        userTimeZone.IsCompanySpecific = CurrentUser.Get().IsSuperAdmin;

                        if (maxid != null)
                        {
                            userTimeZone.TimeZoneId = maxid + 1;
                        }
                        else
                        {
                            userTimeZone.TimeZoneId = 1;
                        }
                    }

                    for (int i = 0; i < 4; i++)
                    {
                        var validFrom = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 8, 0, 0);
                        var validTo   = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 20, 0, 0);
                        UserTimeZoneProperty userTimeZoneProperty = DomainObjectFactory.CreateUserTimeZoneProperty();
                        userTimeZoneProperty.UserTimeZoneId = userTimeZone.Id;
                        userTimeZoneProperty.TimeZoneId     = userTimeZone.TimeZoneId;
                        userTimeZoneProperty.OrderInGroup   = i;
                        userTimeZoneProperty.ValidFrom      = validFrom;
                        userTimeZoneProperty.ValidTo        = validTo;
                        userTimeZoneProperty.IsMonday       = true;
                        userTimeZoneProperty.IsTuesday      = false;
                        userTimeZoneProperty.IsWednesday    = false;
                        userTimeZoneProperty.IsThursday     = false;
                        userTimeZoneProperty.IsFriday       = false;
                        userTimeZoneProperty.IsSaturday     = false;
                        userTimeZoneProperty.IsSunday       = false;
                        userTimeZone.UserTimeZoneProperties.Add(userTimeZoneProperty);
                    }
                }
                _userTimeZoneRepository.Add(userTimeZone);
                work.Commit();
                var message = new XElement(XMLLogLiterals.LOG_MESSAGE);
                message.Add(XMLLogMessageHelper.TemplateToXml("LogMessageUserTimeZoneCreated", new List <string> {
                    name, CurrentUser.Get().LoginName
                }));

                _logService.CreateLog(CurrentUser.Get().Id, "web", flag, CurrentUser.Get().HostName, CurrentUser.Get().CompanyId,
                                      message.ToString());
                _controllerUpdateService.CreateControllerUpdate(CurrentUser.Get().Id, userTimeZone.Id, UpdateParameter.UserTimeZoneUpdate, ControllerStatus.Created, name);
                return(userTimeZone.Id);
            }
        }