public async Task <Result> UpdateSubModuleField(UpdateFieldDTO dto) { var result = new Result(); try { var subModuleField = await _repo.GetFirstAsync <SubModuleField>( filter : f => f.FieldId == Convert.ToInt32(dto.Id)); //todo: hard coded, rework subModuleField.SubModuleId = Convert.ToInt32(dto.LifeCycle) + 1; //todo: validation _repo.Update(subModuleField); await _repo.SaveAsync(); result.Message = "Field has been successfully updated."; result.Success = true; } catch (Exception e) { result.Message = "Error adding field."; result.ErrorCode = ErrorCode.EXCEPTION; _logger.LogError("Error calling UpdateField: {0}", e.Message); } return(result); }
public async Task <Result> UpdateLifeCycleField(UpdateFieldDTO dto) { var result = new Result(); try { var field = _repo.GetById <Field>(Convert.ToInt32(dto.Id)); if (field.Name != dto.Name) { var validateResult = await _validationService.IsValidField(dto.Name, true, (int)dto.LifeCycle + 1); if (!validateResult.IsValid) { result.Message = validateResult.Message; result.ErrorCode = ErrorCode.INVALID_INPUT; return(result); } } var submoduleFields = (await _repo.GetAsync <SubModuleField>( filter: f => f.SubModuleId == (int)dto.LifeCycle + 1, include: i => i.Include(ii => ii.Field) )).ToList(); submoduleFields = submoduleFields.Where(w => w.FieldId != Convert.ToInt32(dto.Id)).ToList(); if (submoduleFields.Where(w => w.Field.Name == dto.Name).Select(s => s.Field.Name).FirstOrDefault() == dto.Name) { result.Message = "The field name is not available."; result.ErrorCode = ErrorCode.INVALID_INPUT; return(result); } if (field == null) { result.Message = "Field does not exist."; result.ErrorCode = ErrorCode.DATA_NOT_FOUND; return(result); } field.Name = dto.Name; field.Purpose = dto.Purpose ?? ""; field.Type = dto.Type; field.IsRequired = false; field.Classification = dto.Classification; _repo.Update(field); await _repo.SaveAsync(); result.Message = "Field has been successfully updated."; result.Success = true; } catch (Exception e) { result.Message = "Error adding field."; result.ErrorCode = ErrorCode.EXCEPTION; _logger.LogError("Error calling UpdateField: {0}", e.Message); } return(result); }
public async Task <Result> UpdateField(UpdateFieldDTO dto) { var result = new Result(); try { var field = _repo.GetById <Field>(Convert.ToInt32(dto.Id)); if (field.Name != dto.Name) { var validateResult = await _validationService.IsValidField(dto.Name, false, 0); if (!validateResult.IsValid) { result.Message = validateResult.Message; result.ErrorCode = ErrorCode.INVALID_INPUT; return(result); } } if (field == null) { result.Message = "Field does not exist."; result.ErrorCode = ErrorCode.DATA_NOT_FOUND; return(result); } field.Name = dto.Name; field.Purpose = dto.Purpose ?? ""; field.Type = FieldType.TextField; field.IsRequired = false; field.Classification = dto.Classification; _repo.Update(field); await _repo.SaveAsync(); result.Message = "Field has been successfully updated."; result.Success = true; } catch (Exception e) { result.Message = "Error adding field."; result.ErrorCode = ErrorCode.EXCEPTION; _logger.LogError("Error calling UpdateField: {0}", e.Message); } return(result); }