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);
        }
示例#4
0
        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);
        }
示例#5
0
        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);
        }