Example #1
0
 private IHttpActionResult GetByName(string name, PlanVisibility visibility = PlanVisibility.Standard)
 {
     using (var uow = ObjectFactory.GetInstance <IUnitOfWork>())
     {
         var curPlans  = _plan.GetByName(uow, _security.GetCurrentAccount(uow), name, visibility);
         var fullPlans = curPlans.Select(curPlan => PlanMappingHelper.MapPlanToDto(curPlan)).ToList();
         return(Ok(fullPlans));
     }
 }
Example #2
0
        private IHttpActionResult GetByActivity(Guid id)
        {
            using (var uow = ObjectFactory.GetInstance <IUnitOfWork>())
            {
                var plan   = _plan.GetPlanByActivityId(uow, id);
                var result = PlanMappingHelper.MapPlanToDto(plan);

                return(Ok(result));
            };
        }
Example #3
0
        private async Task <IHttpActionResult> GetFullPlan(Guid id)
        {
            using (var uow = ObjectFactory.GetInstance <IUnitOfWork>())
            {
                var plan   = _plan.GetFullPlan(uow, id);
                var result = PlanMappingHelper.MapPlanToDto(plan);

                result.Visibility.Public = await _planDirectoryService.GetTemplate(id, User.Identity.GetUserId()) != null;

                return(Ok(result));
            };
        }
Example #4
0
        private async Task <IHttpActionResult> Post(PlanNoChildrenDTO planDto)
        {
            using (var uow = ObjectFactory.GetInstance <IUnitOfWork>())
            {
                if (!ModelState.IsValid)
                {
                    return(BadRequest("Some of the request data is invalid"));
                }
                var curPlanDO = Mapper.Map <PlanNoChildrenDTO, PlanDO>(planDto, opts => opts.Items.Add("ptid", planDto.Id));

                _plan.CreateOrUpdate(uow, curPlanDO);

                uow.SaveChanges();
                var result = PlanMappingHelper.MapPlanToDto(_plan.GetFullPlan(uow, curPlanDO.Id));
                return(Ok(result));
            }
        }
Example #5
0
        public PlanDTO CrateTemplate(Guid planId, string userId)
        {
            PlanDO clonedPlan;

            using (var uow = _unitOfWorkFactory.Create())
            {
                var plan = _planService.GetPlanByActivityId(uow, planId);

                clonedPlan = (PlanDO)PlanTreeHelper.CloneWithStructure(plan);
            }

            clonedPlan.PlanState = PlanState.Inactive;

            //linearlize tree structure
            var planTree = clonedPlan.GetDescendants();
            var idsMap   = new Dictionary <Guid, Guid>();

            foreach (var planNodeDO in planTree)
            {
                var oldId = planNodeDO.Id;

                planNodeDO.Id           = Guid.NewGuid();
                planNodeDO.Fr8Account   = null;
                planNodeDO.Fr8AccountId = null;

                var activity = planNodeDO as ActivityDO;

                if (activity != null)
                {
                    activity.AuthorizationToken = null;
                }

                idsMap.Add(oldId, planNodeDO.Id);
            }

            foreach (var activity in planTree.OfType <ActivityDO>())
            {
                activity.CrateStorage = _crateManager.EmptyStorageAsStr(); // UpdateCrateStorage(activity.CrateStorage, idsMap);
            }

            return(PlanMappingHelper.MapPlanToDto(clonedPlan));
        }
Example #6
0
        private async Task <IHttpActionResult> CreateSolution(string solutionName)
        {
            var userId = User.Identity.GetUserId();

            using (var uow = ObjectFactory.GetInstance <IUnitOfWork>())
            {
                ActivityTemplateDO activityTemplate;

                var activityTemplateInfo = _activityTemplate.GetActivityTemplateInfo(solutionName);

                if (!string.IsNullOrEmpty(activityTemplateInfo.Version))
                {
                    activityTemplate = _activityTemplate
                                       .GetQuery()
                                       .FirstOrDefault(x => x.Name == activityTemplateInfo.Name && x.Version == activityTemplateInfo.Version);
                }
                else
                {
                    activityTemplate = _activityTemplate.GetQuery()
                                       .Where(x => x.Name == solutionName)
                                       .AsEnumerable()
                                       .OrderByDescending(x => int.Parse(x.Version))
                                       .FirstOrDefault();
                }
                if (activityTemplate == null)
                {
                    throw new MissingObjectException($"Activity template (solution) name {solutionName} doesn't exist");
                }
                ObjectFactory.GetInstance <ITracker>().Track(_security.GetCurrentAccount(uow), "Loaded Solution", new Segment.Model.Properties().Add("Solution Name", solutionName));
                var result = await _activity.CreateAndConfigure(
                    uow,
                    userId,
                    activityTemplate.Id,
                    name : activityTemplate.Label,
                    createPlan : true);

                return(Ok(PlanMappingHelper.MapPlanToDto((PlanDO)result)));
            }
        }