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 }); }
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); }