private async Task UpdateEndDateTime(ApplicationInDto model, Guid userId) { if (model.WithReplacement != null) { var task = await _baseLogic.Of <Shared.Data.Context.ApplicationTask>().Base().FirstOrDefaultAsync(a => a.UserId == userId && !a.IsDeleted); var days = (bool)model.WithReplacement ? 19 : 9; task.PlanEndDate = task.CreatedDate.AddDays(days); await _baseLogic.Of <Shared.Data.Context.ApplicationTask>().Update(task); } if (model.RepairType != null) { var task = await _baseLogic.Of <Shared.Data.Context.ApplicationTask>().Base().FirstOrDefaultAsync(a => a.UserId == userId && !a.IsDeleted); task.PlanEndDate = task.CreatedDate.AddDays(10); await _baseLogic.Of <Shared.Data.Context.ApplicationTask>().Update(task); } }
public async Task <IActionResult> InsertOrUpdateApplication([FromBody] ApplicationInDto model) { try { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var res = await _applicationLogic.InsertOrUpdateApplication(model, CurrentUserId); return(Ok(res)); } catch (Exception e) { return(ExceptionResult(e)); } }
public async Task <Guid> InsertOrUpdateApplication(ApplicationInDto model, Guid userId) { var actions = new List <Action <ApplicationInDto, Data.Context.Application> >(); actions.Add((dto, ent) => ent.UserId = dto.UserId ?? userId); if (model.Id != null && model.Id != Guid.Empty) { await UpdateEndDateTime(model, userId); var application = await _baseLogic.Of <Data.Context.Application>().Base().FirstOrDefaultAsync(a => a.Id == model.Id); _ = _baseLogic.Of <Data.Context.Application>().Update(model.MapTo(application, actions)); return(application.Id); } actions.Add((dto, ent) => ent.Status = ApplicationStatusEnum.Draft); var tmp = await _baseLogic.Of <Data.Context.Application>() .Add(model.CreateMappedObject(actions)); await GenerateRegNumber(tmp); await _applicationWorkflowLogic.CreateApplication(tmp, userId); return(tmp); }