示例#1
0
        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));
            }
        }
示例#3
0
        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);
        }