示例#1
0
        private void AddSingleMaterialRequests(string materialName)
        {
            var material = _db.Materials.First(x => x.Name == materialName);

            var locationsWithPlayers = _db.Locations.Where(x => x.RequestsPayed > 0).ToList();

            foreach (var location in locationsWithPlayers)
            {
                var materialRequest = _db.MaterialsRequests
                                      .FirstOrDefault(x => x.IsPayed &&
                                                      x.LocationId == location.Id &&
                                                      x.Customer == "За взносы");
                if (materialRequest != null)
                {
                    var singleMaterialRequest = new SingleMaterialRequest
                    {
                        QuantityOrdered    = material.AmountPerPayedRequestInLocation * location.RequestsPayed,
                        QuantityServed     = 0,
                        MaterialId         = material.Id,
                        MaterialsRequestId = materialRequest.Id,
                    };
                    _db.SingleMaterialRequests.Add(singleMaterialRequest);
                    _db.SaveChanges();
                }
            }
        }
示例#2
0
        private void AddMaterialsRequest(Location location)
        {
            var materialsRequest = new MaterialsRequest
            {
                Customer   = "За взносы",
                IsPayed    = true,
                LocationId = location.Id
            };

            _db.MaterialsRequests.Add(materialsRequest);
            _db.SaveChanges();
            var materialsForPayedRequests = _db.Materials.Where(x => x.AmountPerPayedRequestInLocation > 0).ToList();

            foreach (var material in materialsForPayedRequests)
            {
                var singleMaterialRequest = new SingleMaterialRequest
                {
                    MaterialId         = material.Id,
                    MaterialsRequestId = materialsRequest.Id,
                    QuantityOrdered    = location.RequestsPayed * material.AmountPerPayedRequestInLocation,
                    QuantityServed     = 0,
                };
                _db.SingleMaterialRequests.Add(singleMaterialRequest);
                _db.SaveChanges();
            }
        }
示例#3
0
        public async Task <ActionResult <SingleMaterialRequestInfoView> > Get(int id)
        {
            SingleMaterialRequest singleRequest = await _db.SingleMaterialRequests
                                                  .Include(x => x.MaterialsRequest)
                                                  .ThenInclude(x => x.Location)
                                                  .FirstOrDefaultAsync(x => x.Id == id);

            if (singleRequest == null)
            {
                return(NotFound());
            }

            var singleMaterialRequestInfoView = new SingleMaterialRequestInfoView
            {
                Id                 = singleRequest.Id,
                Customer           = singleRequest.MaterialsRequest.Customer,
                IsPayed            = singleRequest.MaterialsRequest.IsPayed,
                LocationName       = singleRequest.MaterialsRequest.Location.Name,
                MaterialsRequestId = singleRequest.MaterialsRequestId,
                QuantityOrdered    = singleRequest.QuantityOrdered,
                QuantityServed     = singleRequest.QuantityServed,
            };

            return(new ObjectResult(singleMaterialRequestInfoView));
        }