// Manual mapping method to resolve DO-1164.
        public static PlanDTO MapPlanToDto(PlanDO curPlanDO)
        {
            var subPlanDTOList = curPlanDO.ChildNodes.OfType <SubplanDO>()
                                 .OrderBy(x => x.Ordering)
                                 .ToList()
                                 .Select((SubplanDO x) =>
            {
                var pntDTO = Mapper.Map <FullSubplanDto>(x);

                pntDTO.Activities = x.ChildNodes.OrderBy(y => y.Ordering).Select(Mapper.Map <ActivityDTO>).ToList();

                return(pntDTO);
            }).ToList();

            var result = new PlanDTO()
            {
                Description = curPlanDO.Description,
                Id          = curPlanDO.Id,
                Name        = curPlanDO.Name,
                PlanState   = PlanState.IntToString(curPlanDO.PlanState),
                Visibility  = new PlanVisibilityDTO()
                {
                    Hidden = curPlanDO.Visibility.BooleanValue()
                },
                StartingSubPlanId = curPlanDO.StartingSubPlanId,
                SubPlans          = subPlanDTOList,
                Fr8UserId         = curPlanDO.Fr8AccountId,
                Tag         = curPlanDO.Tag,
                Category    = curPlanDO.Category,
                LastUpdated = curPlanDO.LastUpdated
            };

            return(result);
        }
Exemplo n.º 2
0
        public static void ConfigureAutoMapper()
        {
            Mapper.CreateMap <PlanDO, PlanNoChildrenDTO>().ForMember(a => a.Id, opts => opts.ResolveUsing(ad => ad.Id))
            .ForMember(a => a.Category, opts => opts.ResolveUsing(ad => ad.Category))
            .ForMember(a => a.Description, opts => opts.ResolveUsing(ad => ad.Description))
            .ForMember(a => a.LastUpdated, opts => opts.ResolveUsing(ad => ad.LastUpdated))
            .ForMember(a => a.Name, opts => opts.ResolveUsing(ad => ad.Name))
            .ForMember(a => a.PlanState, opts => opts.ResolveUsing(ad => PlanState.IntToString(ad.PlanState)))
            .ForMember(a => a.StartingSubPlanId, opts => opts.ResolveUsing(ad => ad.StartingSubPlanId))
            .ForMember(a => a.Tag, opts => opts.ResolveUsing(ad => ad.Tag))
            .ForMember(a => a.Visibility, opts => opts.ResolveUsing(ad => new PlanVisibilityDTO()
            {
                Hidden = ad.Visibility.BooleanValue()
            }));

            Mapper.CreateMap <PlanNoChildrenDTO, PlanDO>().ForMember(a => a.Id, opts => opts.ResolveUsing(ad => ad.Id))
            .ForMember(a => a.Category, opts => opts.ResolveUsing(ad => ad.Category))
            .ForMember(a => a.Description, opts => opts.ResolveUsing(ad => ad.Description))
            .ForMember(a => a.LastUpdated, opts => opts.ResolveUsing(ad => ad.LastUpdated))
            .ForMember(a => a.Name, opts => opts.ResolveUsing(ad => ad.Name))
            .ForMember(a => a.PlanState, opts => opts.ResolveUsing(ad => PlanState.StringToInt(ad.PlanState)))
            .ForMember(a => a.StartingSubPlanId, opts => opts.ResolveUsing(ad => ad.StartingSubPlanId))
            .ForMember(a => a.Tag, opts => opts.ResolveUsing(ad => ad.Tag))
            .ForMember(a => a.Visibility, opts => opts.ResolveUsing(ad => ad.Visibility?.PlanVisibilityValue()));

            Mapper.CreateMap <ActivityNameDTO, ActivityTemplateDO>()
            .ForMember(activityTemplateDO => activityTemplateDO.Name, opts => opts.ResolveUsing(e => e.Name))
            .ForMember(activityTemplateDO => activityTemplateDO.Version, opts => opts.ResolveUsing(e => e.Version));

            Mapper.CreateMap <PlanNoChildrenDTO, PlanDO>();
            Mapper.CreateMap <PlanDO, PlanNoChildrenDTO>();

            Mapper.CreateMap <ActivityDO, ActivityDTO>();
            Mapper.CreateMap <ActivityTemplateDTO, ActivityTemplateSummaryDTO>()
            .ForMember(x => x.Name, opts => opts.MapFrom(src => src.Name))
            .ForMember(x => x.Version, opts => opts.MapFrom(src => src.Version))
            .ForMember(x => x.TerminalName, opts => opts.MapFrom(src => src.Terminal.Name))
            .ForMember(x => x.TerminalVersion, opts => opts.MapFrom(src => src.Terminal.Version));

            Mapper.CreateMap <Fr8AccountDO, UserDTO>()
            .ForMember(dto => dto.EmailAddress, opts => opts.ResolveUsing(e => e.EmailAddress.Address))
            .ForMember(dto => dto.Status, opts => opts.ResolveUsing(e => e.State.Value));
        }
Exemplo n.º 3
0
        private async Task RemoveInactiveExistingPlans(IHubCommunicator hubCommunicator, string plan_name, AuthorizationToken authToken)
        {
            try
            {
                var existingPlans = (await hubCommunicator.GetPlansByName(plan_name, PlanVisibility.Internal)).ToList();
                if (existingPlans.Count > 0)
                {
                    //active MADSE plans are likely related to another DS account
                    var plansForRemoval = existingPlans
                                          .Where(val =>
                                                 (val.PlanState == PlanState.IntToString(PlanState.Inactive)) || //or all from above
                                                 !(val.SubPlans.Any() && val.SubPlans.ElementAt(0).Activities.Any() &&
                                                   val.SubPlans.ElementAt(0).Activities[1].ActivityTemplate.Name == "Save_All_Payload_To_Fr8_Warehouse")).ToList();

                    foreach (var plan in plansForRemoval)
                    {
                        await hubCommunicator.DeletePlan(plan.Id);
                    }

                    Logger.Info($"Removed {plansForRemoval.Count} obsolete MADSE plan");
                }
            }
            catch (Exception exc) { Logger.Info("Failed to remove obsolete MADSE plan"); }
        }
Exemplo n.º 4
0
        public void ConfigureAutoMapper()
        {
            Mapper.CreateMap <PlanDO, PlanNoChildrenDTO>().ForMember(a => a.Id, opts => opts.ResolveUsing(ad => ad.Id))
            .ForMember(a => a.Category, opts => opts.ResolveUsing(ad => ad.Category))
            .ForMember(a => a.Description, opts => opts.ResolveUsing(ad => ad.Description))
            .ForMember(a => a.LastUpdated, opts => opts.ResolveUsing(ad => ad.LastUpdated))
            .ForMember(a => a.Name, opts => opts.ResolveUsing(ad => ad.Name))
            .ForMember(a => a.PlanState, opts => opts.ResolveUsing(ad => PlanState.IntToString(ad.PlanState)))
            .ForMember(a => a.StartingSubPlanId, opts => opts.ResolveUsing(ad => ad.StartingSubPlanId))
            .ForMember(a => a.Tag, opts => opts.ResolveUsing(ad => ad.Tag))
            .ForMember(a => a.Visibility, opts => opts.ResolveUsing(ad => new PlanVisibilityDTO()
            {
                Hidden = ad.Visibility.BooleanValue()
            }));

            Mapper.CreateMap <PlanNoChildrenDTO, PlanDO>().ForMember(a => a.Id, opts => opts.ResolveUsing(ad => ad.Id))
            .ForMember(a => a.Category, opts => opts.ResolveUsing(ad => ad.Category))
            .ForMember(a => a.Description, opts => opts.ResolveUsing(ad => ad.Description))
            .ForMember(a => a.LastUpdated, opts => opts.ResolveUsing(ad => ad.LastUpdated))
            .ForMember(a => a.Name, opts => opts.ResolveUsing(ad => ad.Name))
            .ForMember(a => a.PlanState, opts => opts.ResolveUsing(ad => PlanState.StringToInt(ad.PlanState)))
            .ForMember(a => a.StartingSubPlanId, opts => opts.ResolveUsing(ad => ad.StartingSubPlanId))
            .ForMember(a => a.Tag, opts => opts.ResolveUsing(ad => ad.Tag))
            .ForMember(a => a.Visibility, opts => opts.ResolveUsing(ad => ad.Visibility?.PlanVisibilityValue()));

            Mapper.CreateMap <ActivityDO, ActivityDTO>().ForMember(a => a.Id, opts => opts.ResolveUsing(ad => ad.Id))
            .ForMember(a => a.RootPlanNodeId, opts => opts.ResolveUsing(ad => ad.RootPlanNodeId))
            .ForMember(a => a.ParentPlanNodeId, opts => opts.ResolveUsing(ad => ad.ParentPlanNodeId))
            .ForMember(a => a.ChildrenActivities, opts => opts.ResolveUsing(ad => ad.ChildNodes.OfType <ActivityDO>().OrderBy(da => da.Ordering)))
            .ForMember(a => a.ActivityTemplate, opts => opts.ResolveUsing(GetActivityTemplate))
            .ForMember(a => a.AuthToken, opts => opts.ResolveUsing(ad => ad.AuthorizationToken));

            Mapper.CreateMap <ActivityDTO, ActivityDO>().ForMember(a => a.Id, opts => opts.ResolveUsing(ad => ad.Id))
            .ForMember(a => a.RootPlanNodeId, opts => opts.ResolveUsing(ad => ad.RootPlanNodeId))
            .ForMember(a => a.ParentPlanNodeId, opts => opts.ResolveUsing(ad => ad.ParentPlanNodeId))
            //.ForMember(a => a.ActivityTemplate, opts => opts.Ignore())
            .ForMember(a => a.ActivityTemplateId, opts => opts.ResolveUsing(GetActivityTemplateId))
            //.ForMember(a => a.CrateStorage, opts => opts.ResolveUsing(ad => Newtonsoft.Json.JsonConvert.SerializeObject(ad.CrateStorage)))
            .ForMember(a => a.ChildNodes, opts => opts.ResolveUsing(ad => MapActivities(ad.ChildrenActivities)))
            .ForMember(a => a.AuthorizationTokenId, opts => opts.ResolveUsing(ad => ad.AuthToken != null && ad.AuthToken.Id != null ? new Guid(ad.AuthToken.Id) : (Guid?)null));

            Mapper.CreateMap <ActivityTemplateDO, ActivityTemplateSummaryDTO>()
            .ForMember(x => x.Name, opts => opts.ResolveUsing(x => x.Name))
            .ForMember(x => x.Version, opts => opts.ResolveUsing(x => x.Version))
            .ForMember(x => x.TerminalName, opts => opts.ResolveUsing(x => x.Terminal.Name))
            .ForMember(x => x.TerminalVersion, opts => opts.ResolveUsing(x => x.Terminal.Version));

            Mapper.CreateMap <ActivityTemplateDO, ActivityTemplateDTO>()
            .ForMember(x => x.Id, opts => opts.ResolveUsing(x => x.Id))
            .ForMember(x => x.Name, opts => opts.ResolveUsing(x => x.Name))
            .ForMember(x => x.Version, opts => opts.ResolveUsing(x => x.Version))
            .ForMember(x => x.Terminal, opts => opts.ResolveUsing(GetTerminal))
            .ForMember(x => x.NeedsAuthentication, opts => opts.ResolveUsing(x => x.NeedsAuthentication));

            Mapper.CreateMap <Fr8AccountDO, ManageUserVM>()
            .ForMember(mu => mu.HasLocalPassword, opts => opts.ResolveUsing(account => !string.IsNullOrEmpty(account.PasswordHash)))
            .ForMember(mu => mu.HasGoogleToken, opts => opts.Ignore())
            .ForMember(mu => mu.GoogleSpreadsheets, opts => opts.Ignore());


            Mapper.CreateMap <UserVM, EmailAddressDO>()
            .ForMember(userDO => userDO.Address, opts => opts.ResolveUsing(e => e.EmailAddress));



            Mapper.CreateMap <UserVM, Fr8AccountDO>()
            .ForMember(userDO => userDO.Id, opts => opts.ResolveUsing(e => e.Id))
            .ForMember(userDO => userDO.FirstName, opts => opts.ResolveUsing(e => e.FirstName))
            .ForMember(userDO => userDO.LastName, opts => opts.ResolveUsing(e => e.LastName))
            .ForMember(userDO => userDO.UserName, opts => opts.ResolveUsing(e => e.UserName))
            .ForMember(userDO => userDO.EmailAddress, opts => opts.ResolveUsing(e => new EmailAddressDO {
                Address = e.EmailAddress
            }))
            .ForMember(userDO => userDO.Roles, opts => opts.Ignore());

            Mapper.CreateMap <PageDefinitionDTO, PageDefinitionDO>()
            .ForMember(dest => dest.Url, opts => opts.Ignore())
            .ForMember(dest => dest.Tags, opts => opts.MapFrom(
                           x => x.Tags.Split(new[] { ' ', ',' }, StringSplitOptions.RemoveEmptyEntries).ToList()));

            Mapper.CreateMap <PageDefinitionDO, PageDefinitionDTO>()
            .ForMember(dest => dest.Tags, opts => opts.MapFrom(x => string.Join(", ", x.Tags)));
        }