Beispiel #1
0
        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
            });
        }
Beispiel #2
0
        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
            });
        }
Beispiel #3
0
        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);
        }