public async Task <ApiResponse <RequestVm> > GetRequest(long id) { var request = await repository.Requests.Items .Include(x => x.RequestValues) .FirstOrDefaultAsync(x => x.Id == id); if (request == null) { return(new ApiResponse <RequestVm> { ErrorMessage = "Заявка не существует или была удалена" }); } var requestType = await repository.RequestTypes.Items .Include(x => x.RequestTypeFields) .FirstOrDefaultAsync(x => x.Id == request.RequestTypeId); if (requestType == null) { return(new ApiResponse <RequestVm> { ErrorMessage = "Возникла ошибка при обработке вашего запроса" }); } var requestVm = new RequestVm(request) { RequestType = new RequestTypeVm(requestType) }; foreach (var fieldType in requestVm.RequestType.RequestTypeFields) { var requestValue = request.RequestValues.FirstOrDefault(x => x.RequestTypeFieldId == fieldType.Id); if (requestValue != null) { fieldType.RequestValue = new RequestValueVm(requestValue); } } return(new ApiResponse <RequestVm> { Response = requestVm }); }
public async Task <ApiResponse <RequestVm> > AddRequest([FromBody] RequestVm requestVm) { var dbResponse = await repository.Requests.AddAsync(requestVm); if (dbResponse.Success) { await requestNotificationHub.Clients.All.SendAsync("NotifyAdmins", $"Заявка с номером {dbResponse.Response.Id} только что была создана"); var requestType = await repository.RequestTypes.Items .Include(x => x.RequestTypeFields) .FirstOrDefaultAsync(x => x.Id == dbResponse.Response.RequestTypeId); var reqVm = new RequestVm(dbResponse.Response) { RequestType = new RequestTypeVm(requestType) }; foreach (var fieldType in reqVm.RequestType.RequestTypeFields) { var requestValue = dbResponse.Response.RequestValues.FirstOrDefault(x => x.RequestTypeFieldId == fieldType.Id); if (requestValue != null) { fieldType.RequestValue = new RequestValueVm(requestValue); } } return(new ApiResponse <RequestVm> { Response = reqVm, Message = dbResponse.Message }); } return(new ApiResponse <RequestVm> { ErrorMessage = dbResponse.ErrorMessage }); }
public async Task <ApiResponse <RequestVm> > UpdateRequest([FromBody] RequestVm requestVm) { var dbResponse = await repository.Requests.UpdateAsync(requestVm); if (dbResponse.Success) { var requestType = await repository.RequestTypes.Items .Include(x => x.RequestTypeFields) .FirstOrDefaultAsync(x => x.Id == dbResponse.Response.RequestTypeId); var reqVm = new RequestVm(dbResponse.Response) { RequestType = new RequestTypeVm(requestType) }; foreach (var fieldType in reqVm.RequestType.RequestTypeFields) { var requestValue = dbResponse.Response.RequestValues.FirstOrDefault(x => x.RequestTypeFieldId == fieldType.Id); if (requestValue != null) { fieldType.RequestValue = new RequestValueVm(requestValue); } } return(new ApiResponse <RequestVm> { Response = reqVm, Message = dbResponse.Message }); } return(new ApiResponse <RequestVm> { ErrorMessage = dbResponse.ErrorMessage }); }
private void AddRequest() { var request = new Request() { Name = "Новый", Client = new Client() { Name = "новый" }, HangarCity = ServiceLocator.Current.GetInstance<IRepository<City>>().Get(0), Date = DateTime.Now, Hangar = new Hangar(){}}; _requestRepository.Add(request); var requestVm = new RequestVm(request); Items.Add(requestVm); }