public void SaveOrder(OrderViewModel order) { var newOrder = OrderViewModel.ToOrder(order); if (newOrder.Genus == null) { newOrder.Genus = u_repo.GetGenus(newOrder.GenusId); } if (newOrder.Location == null && newOrder.LocationId.HasValue) { newOrder.Location = u_repo.GetLocation(newOrder.LocationId.Value); } if (newOrder.Location != null && newOrder.Location.PrimaryContactId.HasValue) { newOrder.Grower = u_repo.GetGrower(newOrder.Location.PrimaryContactId.Value); } else if (newOrder.Grower == null) { newOrder.Grower = u_repo.GetGrower(newOrder.GrowerId); } u_repo.SaveOrder(newOrder); var newOrderVm = OrderViewModel.Create(newOrder); newOrderVm.CopyTo(order); }
public OrderViewModel GetOrder(int id) { var order = u_repo.GetOrder(o => o.Id == id); if (order == null) { return(null); } return(OrderViewModel.Create(order)); }
public List <OrderViewModel> GetOrders(int genusId) { var orders = u_repo.GetOrders(o => o.GenusId == genusId).Select(o => OrderViewModel.Create(o)).ToList(); return(orders); }
public async Task<IHttpActionResult> Get(long id) { var user = await _authRepository.FindUser(HttpContext.Current.User as ClaimsPrincipal); var entity = await _orderRepository.GetAsync(id); if (entity == null) { return NotFound(); } if (entity.UserId != user.Id) { return StatusCode(HttpStatusCode.Forbidden); } var viewModel = new OrderViewModel(); viewModel.Create(entity); return Ok(viewModel); }
public async Task<IHttpActionResult> Delete(long id, string username) { var user = await _authRepository.FindUser(username); var isAdmin = await _authRepository.IsAdmin(HttpContext.Current.User as ClaimsPrincipal); var entity = await _orderRepository.FindAsync(o => o.ProductId == id && o.UserId == user.Id); if (entity == null) { return NotFound(); } var order = entity.FirstOrDefault(); if(order == null) { return NotFound(); } if (!isAdmin) { return StatusCode(HttpStatusCode.Forbidden); } _orderRepository.Remove(order); await _unitOfWork.CompleteAsync(); var viewModel = new OrderViewModel(); viewModel.Create(order); return Ok(viewModel); }