Ejemplo n.º 1
0
        private void UpdateLinks(SNProfile instance, SNProfileDTO profileDTO, out List <SNLink> outLinks)
        {
            outLinks = new List <SNLink>();
            var model        = this.SNLinkModel;
            var listToDelete = instance.Links.ToList();
            var links        = profileDTO.links.Any(x => x.snLinkId != 0) ? model.GetAllByIds(profileDTO.links.Where(x => x.snLinkId != 0).Select(x => x.snLinkId).ToList()).ToList() : new List <SNLink>();

            foreach (var link in profileDTO.links)
            {
                var linkInstance = links.FirstOrDefault(x => x.Id == link.snLinkId) ?? new SNLink();
                linkInstance.LinkName  = link.linkName;
                linkInstance.LinkValue = link.linkValue;
                if (!linkInstance.IsTransient() && listToDelete.Any(x => x.Id == linkInstance.Id))
                {
                    listToDelete.Remove(listToDelete.First(x => x.Id == linkInstance.Id));
                }

                outLinks.Add(linkInstance);
            }

            foreach (var link in listToDelete)
            {
                model.RegisterDelete(link);
            }
        }
Ejemplo n.º 2
0
        private void UpdateServices(SNProfile instance, SNProfileDTO profileDTO, out List <SNProfileSNService> outServices)
        {
            outServices = new List <SNProfileSNService>();
            var model        = this.SNProfileSNServiceModel;
            var serviceModel = this.SNServiceModel;
            var entities     = profileDTO.services.Any(x => x.snProfileSNServiceId != 0) ? model.GetAllByIds(profileDTO.services.Where(x => x.snProfileSNServiceId != 0).Select(x => x.snProfileSNServiceId).ToList()).ToList() : new List <SNProfileSNService>();
            var services     = serviceModel.GetAllByIds(profileDTO.services.Where(x => x.snServiceId != 0).Select(x => x.snServiceId).ToList()).ToList();
            var listToDelete = instance.Services.ToList();

            foreach (var service in profileDTO.services)
            {
                SNService serviceInstance;
                if ((serviceInstance = services.FirstOrDefault(x => x.Id == service.snServiceId)) != null)
                {
                    var entity = entities.FirstOrDefault(x => x.Id == service.snProfileSNServiceId) ?? new SNProfileSNService();
                    entity.IsEnabled  = service.isEnabled;
                    entity.Service    = serviceInstance;
                    entity.ServiceUrl = service.serviceUrl;
                    if (!entity.IsTransient() && listToDelete.Any(x => x.Id == entity.Id))
                    {
                        listToDelete.Remove(listToDelete.First(x => x.Id == entity.Id));
                    }

                    outServices.Add(entity);
                }
            }

            foreach (var service in listToDelete)
            {
                model.RegisterDelete(service);
            }
        }
Ejemplo n.º 3
0
        private SNProfile ConvertDto(SNProfileDTO profileDTO, SNProfile instance,
                                     out List <SNLink> links, out List <SNProfileSNService> services)
        {
            instance               = instance ?? new SNProfile();
            instance.ProfileName   = profileDTO.profileName;
            instance.UserName      = profileDTO.userName;
            instance.JobTitle      = profileDTO.jobTitle;
            instance.Email         = profileDTO.email;
            instance.Phone         = profileDTO.phone;
            instance.About         = profileDTO.about;
            instance.SubModuleItem = this.SubModuleItemModel.GetOneById(profileDTO.subModuleItemId).Value;
            instance.MapSettings   = this.UpdateMapSettings(instance, profileDTO);
            if (profileDTO.addressVO != null)
            {
                instance.Address = instance.Address ?? new Address();
                var addressVo = profileDTO.addressVO;
                instance.Address.Address1 = addressVo.address1;
                instance.Address.Address2 = addressVo.address2;
                instance.Address.City     = addressVo.city;
                if (instance.Address.IsTransient())
                {
                    instance.Address.DateCreated = DateTime.Now;
                }

                instance.Address.DateModified = DateTime.Now;
                instance.Address.Latitude     = addressVo.latitude;
                instance.Address.Longitude    = addressVo.longitude;
                instance.Address.Country      = addressVo.countryId.HasValue
                                               ? this.CountryModel.GetOneById(addressVo.countryId.Value).Value
                                               : null;
                instance.Address.State = addressVo.stateId.HasValue
                                               ? this.StateModel.GetOneById(addressVo.stateId.Value).Value
                                               : null;
                instance.Address.Zip = addressVo.zip;
                this.AddressModel.RegisterSave(instance.Address);
            }

            links = new List <SNLink>();
            if (profileDTO.links != null)
            {
                this.UpdateLinks(instance, profileDTO, out links);
            }

            services = new List <SNProfileSNService>();
            if (profileDTO.services != null)
            {
                this.UpdateServices(instance, profileDTO, out services);
            }

            return(instance);
        }
Ejemplo n.º 4
0
        private void SaveLinks(List <SNLink> links, SNProfile instance)
        {
            if (links.Any())
            {
                var linksModel = this.SNLinkModel;
                foreach (var link in links)
                {
                    link.Profile = instance;
                    linksModel.RegisterSave(link);
                }

                linksModel.Flush();
            }
        }
Ejemplo n.º 5
0
        private void SaveServices(List <SNProfileSNService> services, SNProfile instance)
        {
            if (services.Any())
            {
                var servicesModel = this.SNProfileSNServiceModel;
                foreach (var service in services)
                {
                    service.Profile = instance;
                    servicesModel.RegisterSave(service);
                }

                servicesModel.Flush();
            }
        }
Ejemplo n.º 6
0
        private SNMapSettings UpdateMapSettings(SNProfile instance, SNProfileDTO sessionDTO)
        {
            if (sessionDTO.mapSettingsVO != null)
            {
                var mapSettingsVo = sessionDTO.mapSettingsVO;
                var mapSettings   = instance.MapSettings ?? new SNMapSettings();
                mapSettings.Country     = mapSettingsVo.countryId.HasValue ? this.CountryModel.GetOneById(mapSettingsVo.countryId.Value).Value : null;
                mapSettings.MapProvider = mapSettingsVo.snMapProviderId.HasValue ? this.SNMapProviderModel.GetOneById(mapSettingsVo.snMapProviderId.Value).Value : null;
                mapSettings.ZoomLevel   = mapSettingsVo.zoomLevel;

                this.SNMapSettingsModel.RegisterSave(mapSettings);
                return(mapSettings);
            }

            return(null);
        }
Ejemplo n.º 7
0
        // ReSharper restore ImplicitlyCapturedClosure

        /// <summary>
        /// The get profile sub module items by user id.
        /// </summary>
        /// <param name="userId">
        /// The user id.
        /// </param>
        /// <returns>
        /// The <see cref="IEnumerable{SubModuleItemDTO}"/>.
        /// </returns>
        public IEnumerable <SubModuleItemDTO> GetSNProfileSubModuleItemsByUserId(int userId)
        {
            SubModuleItemFromStoredProcedureDTO dto = null;
            SubModuleItem      smi    = null;
            SubModuleCategory  smc    = null;
            SNProfile          survey = null;
            SubModuleItemTheme theme  = null;
            var queryOver             =
                new DefaultQueryOver <SubModuleItem, int>().GetQueryOver(() => smi)
                .JoinQueryOver(x => x.SubModuleCategory, () => smc)
                .JoinQueryOver(() => smi.SNProfiles, () => survey)
                .JoinQueryOver(() => smi.Themes, () => theme, JoinType.LeftOuterJoin)
                .Where(() => smi.CreatedBy != null && smi.CreatedBy.Id == userId && smc.User != null && smc.User.Id == userId)
                .SelectList(res =>
                            res.Select(() => smi.CreatedBy.Id)
                            .WithAlias(() => dto.createdBy)
                            .Select(() => smi.Id)
                            .WithAlias(() => dto.subModuleItemId)
                            .Select(() => smc.SubModule.Id)
                            .WithAlias(() => dto.subModuleId)
                            .Select(() => smi.SubModuleCategory.Id)
                            .WithAlias(() => dto.subModuleCategoryId)
                            .Select(() => smi.IsShared)
                            .WithAlias(() => dto.isShared)
                            .Select(() => smi.ModifiedBy.Id)
                            .WithAlias(() => dto.modifiedBy)
                            .Select(() => smi.DateCreated)
                            .WithAlias(() => dto.dateCreated)
                            .Select(() => smi.DateModified)
                            .WithAlias(() => dto.dateModified)
                            .Select(() => smi.IsActive)
                            .WithAlias(() => dto.isActive)
                            .Select(() => theme.Id)
                            .WithAlias(() => dto.themeId))
                .TransformUsing(Transformers.AliasToBean <SubModuleItemFromStoredProcedureDTO>());
            var result = this.Repository.FindAll <SubModuleItemFromStoredProcedureDTO>(queryOver).ToList()
                         .Select(x => new SubModuleItemDTO(x))
                         .ToList();
            var themeIds   = result.Where(x => x.themeId.HasValue).Select(x => x.themeId.Value).ToList();
            var themeQuery = new DefaultQueryOver <SubModuleItemTheme, int>().GetQueryOver().WhereRestrictionOn(x => x.Id).IsIn(themeIds);
            var themes     = this.themeRepository.FindAll(themeQuery).ToList();

            result.ForEach(x => x.themeVO = x.themeId.HasValue ? themes.FirstOrDefault(t => t.Id == x.themeId).Return(tt => new SubModuleItemThemeDTO(tt), null) : null);
            return(result);
        }
Ejemplo n.º 8
0
 /// <summary>
 /// Initializes a new instance of the <see cref="SNProfileDTO"/> class.
 /// </summary>
 /// <param name="profile">
 /// The SN profile.
 /// </param>
 public SNProfileDTO(SNProfile profile)
 {
     if (profile != null)
     {
         this.snProfileId     = profile.Id;
         this.about           = profile.About;
         this.addressVO       = profile.Address == null ? null : new AddressDTO(profile.Address);
         this.email           = profile.Email;
         this.links           = profile.Links.Select(x => new SNLinkDTO(x)).ToArray();
         this.services        = profile.Services.Select(x => new SNProfileSNServiceDTO(x)).ToArray();
         this.profileName     = profile.ProfileName;
         this.userName        = profile.UserName;
         this.jobTitle        = profile.JobTitle;
         this.phone           = profile.Phone;
         this.mapSettingsVO   = profile.MapSettings == null ? null : new SNMapSettingsDTO(profile.MapSettings);
         this.subModuleItemId = profile.SubModuleItem.With(x => x.Id);
         this.dateModified    = profile.SubModuleItem.With(x => x.DateModified).ConvertToUnixTimestamp();
     }
 }