public async Task <AreaTopicResponseModel> CreateAreaTopicAsync(CreateAreaTopicServiceModel model)
        {
            var planArea = await _planAreaObjectService.GetByIdAsync <PlanArea>(model.PlanAreaId);

            AreaTopic areaTopic = new AreaTopic
            {
                PlanAreaId  = model.PlanAreaId,
                PlanId      = planArea.PlanId,
                UserId      = planArea.UserId,
                Name        = model.Name,
                Source      = model.Source,
                Description = model.Description
            };

            if (!model.IsTemplate && !string.IsNullOrEmpty(model.StartDate) && !string.IsNullOrEmpty(model.EndDate))
            {
                areaTopic.StartDate = DateTime.ParseExact(model.StartDate, "yyyy-MM-dd",
                                                          CultureInfo.CurrentCulture);
                areaTopic.EndDate = DateTime.ParseExact(model.EndDate, "yyyy-MM-dd", CultureInfo.CurrentCulture);
            }
            await _topicObjectService.CreateAsync(areaTopic);

            return(new AreaTopicResponseModel
            {
                Id = areaTopic.Id,
                Name = areaTopic.Name,
                PlanId = areaTopic.PlanId
            });
        }
Esempio n. 2
0
        private async Task <Plan> CreatePlanCoreAsync(PlanServiceModel model, string newPlanId = null)
        {
            var plan = new Plan(model.Name, model.UserId)
            {
                IsTemplate = model.IsTemplate
            };

            if (!string.IsNullOrEmpty(newPlanId))
            {
                plan.Id = newPlanId;
            }

            await _planObjectService.CreateAsync(plan);

            foreach (PlanAreaServiceModel planArea in model.PlanAreas)
            {
                PlanArea area = new PlanArea
                {
                    Name   = planArea.Name,
                    Plan   = plan,
                    PlanId = plan.Id,
                    UserId = plan.UserId
                };

                await _planAreaObjectService.CreateAsync(area);

                foreach (AreaTopicServiceModel areaTopic in planArea.AreaTopics)
                {
                    await _topicObjectService.CreateAsync(new AreaTopic
                    {
                        Name      = areaTopic.Name,
                        StartDate = areaTopic.StartDate != null ? DateTime.ParseExact(areaTopic.StartDate, "yyyy-MM-dd",
                                                                                      CultureInfo.CurrentCulture) : (DateTime?)null,
                        EndDate = areaTopic.EndDate != null
                            ? DateTime.ParseExact(areaTopic.EndDate, "yyyy-MM-dd", CultureInfo.CurrentCulture)
                            : (DateTime?)null,
                        Source      = areaTopic.Source,
                        Description = areaTopic.Description,
                        PlanArea    = area,
                        PlanAreaId  = area.Id,
                        UserId      = areaTopic.UserId,
                        PlanId      = areaTopic.PlanId
                    });
                }
            }

            return(plan);
        }