Пример #1
0
        public async Task <bool> CreateRepairOrder(OrderEntityModel repair)
        {
            try
            {
                repair.CreatedBy          = User;
                repair.ShopGuid           = repair.ShopGuid;
                repair.InsuranceCompanyId = repair.InsuranceCompanyId;

                Db.RepairOrders.Add(repair);
                await Db.SaveChangesAsync();

                var param = new
                {
                    OrderId        = repair.OrderId,
                    PointsOfImpact = repair.ImpactPoints == null
                        ? string.Empty
                        : string.Join(",", repair.ImpactPoints.ToList())
                };
                await Db.Database
                .SqlQuery <object>(
                    $"Repair.usp_SaveOrderPointsOfImpact @OrderId = '{param.OrderId}' , @PointsOfImpact = '{param.PointsOfImpact}'")
                .ToListAsync();

                return(true);
            }
            catch (Exception ex)
            {
                Logger.LogException(ex, repair);

                throw;
            }
        }
 public IActionResult PutOrder(int id, [FromBody] OrderEntityModel model)
 {
     try
     {
         if (ModelState.IsValid)
         {
             var newOrder = _mapper.Map <OrderEntityModel, Order>(model);
             newOrder.Id = id;
             _repo.ModifyOrder(newOrder);
             if (_repo.SaveAll())
             {
                 return(Accepted($"/api/clients/{newOrder.Id}", _mapper.Map <Order, OrderEntityModel>(newOrder)));
             }
         }
         else
         {
             return(BadRequest(ModelState));
         }
     }
     catch (Exception e)
     {
         _logger.LogError($"Failed to put order with id {id}: {e}");
     }
     return(BadRequest(($"Failed to edit order with id {id}")));
 }
Пример #3
0
        private async Task <OrderEntityModel> CreateOrderAsync(OrderEntityModel request)
        {
            var serializerSettings = new JsonSerializerSettings();

            serializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
            var myContent     = JsonConvert.SerializeObject(request, serializerSettings);
            var stringContent = new StringContent(myContent, Encoding.UTF8, "application/json");
            var response      = await TestClient.PostAsync(ApiRoutes.Orders.Post, stringContent);

            //response.Should().Be(HttpStatusCode.Created);

            return(JsonConvert.DeserializeObject <OrderEntityModel>(await response.Content.ReadAsStringAsync()));
        }
Пример #4
0
        //Creates new order.
        public void AddOrder(OrderInputModel model, double totalPrice, DateModel dateOrdered)
        {
            var newOrder = new OrderEntityModel()
            {
                UserID         = model.UserID,
                TotalPrice     = totalPrice,
                DateOrder      = dateOrdered,
                IsCurrentOrder = true,
            };

            _db.Add(newOrder);
            _db.SaveChanges();
        }
        public IActionResult PostOrder([FromBody] OrderEntityModel model)
        {
            try
            {
                var newOrder = _mapper.Map <OrderEntityModel, Order>(model);
                CheckDataValidation(newOrder);
                if (!ModelState.IsValid)
                {
                    _logger.LogDebug($"bad request from post order made by : {ModelState} ");
                    return(BadRequest(ModelState));
                }

                var client = _clientsRepo
                             .GetClientById(model.ClientId);

                if (client == null)
                {
                    ModelState.AddModelError("Errors", "Client is not in Data Base");
                    return(BadRequest(ModelState));
                }

                string firsName = client.FirstName.ToUpper();
                string lastName = client.LastName.ToUpper();

                newOrder.OrderNumber =
                    $"{firsName[0]}{lastName.Substring(0, 3)}-{DateTime.Now.Year}{DateTime.Now.Month}{DateTime.Now.Day}{DateTime.Now.Hour}{DateTime.Now.Minute}{DateTime.Now.Second}";

                newOrder.Client = _clientsRepo
                                  .GetAllClients()
                                  .FirstOrDefault(c => c.Id == model.ClientId);
                _repo.AddOrder(newOrder);
                if (_repo.SaveAll())
                {
                    return(Created($"/api/orders/{newOrder.Id}", _mapper.Map <Order, OrderEntityModel>(newOrder)));
                }
            }
            catch (Exception e)
            {
                _logger.LogError($"Failed to post order: {e}");
            }
            return(BadRequest(("Failed to save new order")));
        }
Пример #6
0
        public void CreateOrder(List <CartViewModel> cart, int accountId, int billingId)
        {
            foreach (var item in cart)
            {
                var newOrder = new OrderEntityModel
                {
                    CustomerId = accountId,
                    BookId     = item.ItemId,
                    Quantity   = item.Quantity,
                    BillingId  = billingId,
                    Price      = item.Quantity * item.Price
                };
                _db.Add(newOrder);
                //deletes the cart
                _cartService.RemoveCart(item, accountId);
            }
            var billing = GetBilling(billingId);
            //updates the cart to finished so this billing wont be changed
            var billingInput = new BillingEntityModel
            {
                Id            = billingId,
                AccountId     = accountId,
                StreetAddress = billing.StreetAddress,
                City          = billing.City,
                Country       = billing.Country,
                Finished      = true,
                ZipCode       = billing.ZipCode,
                CardOwner     = billing.CardOwner,
                CardNumber    = billing.CardNumber,
                ExpireDate    = billing.ExpireMonth + "/" + billing.ExpireYear,
                CvCode        = billing.CvCode
            };

            _db.Update(billingInput);
            _db.SaveChanges();
        }
Пример #7
0
        private async Task <int> QuickRequestSave(IQuickRequest quickRequest, RepairRequestScanViewModel repairRequest)
        {
            var requestId = 0;

            try
            {
                // Check Vehicle Entry.
                if (quickRequest.VehicleMakeId > 0)
                {
                    // Create Vehicle Model.
                    var vehicle = new VehicleViewModel
                    {
                        VehicleVIN          = quickRequest.VehicleVIN,
                        VehicleMakeId       = quickRequest.VehicleMakeId,
                        VehicleModel        = quickRequest.VehicleModel,
                        VehicleYear         = quickRequest.VehicleYear,
                        VehicleTransmission = quickRequest.VehicleTransmission
                    };

                    // Update Vehicle.
                    Factory.Save((IVehicleDto)vehicle);
                }

                // Check Repair.
                OrderEntityModel repair;
                var repairs = Db.RepairOrders.Where(o => o.ShopGuid == quickRequest.ShopGuid && o.VehicleVIN == quickRequest.VehicleVIN && o.Status == RepairStatuses.Active).ToList();
                if (repairs.Count == 1)
                {
                    // Load Repair.
                    repair = repairs.First();

                    await RepairLib.UpdateRepairOrder(new RepairEditViewModel
                    {
                        ShopGuid            = quickRequest.ShopGuid,
                        RepairOrderID       = repair.OrderId,
                        ShopReferenceNumber = quickRequest.ShopReferenceNumber,
                        InsuranceCompany    = new InsuranceCompanyEntityModel
                        {
                            InsuranceCompanyId = quickRequest.InsuranceCompanyId
                        },
                        InsuranceCompanyOther = quickRequest.InsuranceCompanyOther,
                        Odometer                 = quickRequest.Odometer,
                        AirBagsDeployed          = quickRequest.AirBagsDeployed,
                        AirBagsVisualDeployments = quickRequest.AirBagsVisualDeployments,
                        DrivableInd              = quickRequest.DrivableInd,
                        ImpactPoints             = quickRequest.ImpactPoints
                    });
                }
                else
                {
                    // Create Repair.
                    repair = new OrderEntityModel
                    {
                        ShopGuid                 = quickRequest.ShopGuid,
                        VehicleVIN               = quickRequest.VehicleVIN,
                        ShopReferenceNumber      = quickRequest.ShopReferenceNumber,
                        InsuranceCompanyId       = quickRequest.InsuranceCompanyId,
                        InsuranceCompanyOther    = quickRequest.InsuranceCompanyOther,
                        Odometer                 = quickRequest.Odometer,
                        AirBagsDeployed          = quickRequest.AirBagsDeployed,
                        AirBagsVisualDeployments = quickRequest.AirBagsVisualDeployments,
                        DrivableInd              = quickRequest.DrivableInd,
                        ImpactPoints             = quickRequest.ImpactPoints
                    };
                    await RepairLib.CreateRepairOrder(repair);
                }

                // Update Request.
                repairRequest.OrderId = repair.OrderId;
                repairRequest.ContactOtherFirstName = quickRequest.ContactOtherFirstName;
                repairRequest.ContactOtherLastName  = quickRequest.ContactOtherLastName;
                repairRequest.ContactOtherPhone     = quickRequest.ContactOtherPhone;
                repairRequest.ContactUserGuid       = quickRequest.ContactUserGuid;
                if (repairRequest.RequestTypeID == 0)
                {
                    repairRequest.RequestTypeID = 6; // Self Scan if Null.
                }
                if (repairRequest.RequestTypeCategoryId == 0)
                {
                    repairRequest.RequestTypeCategoryId = 1; // Pre Request if Null.
                }
                // Save Request.
                requestId = await RepairLib.CreateScanRequest(repairRequest);

                // Check Result Id.
                if (quickRequest.DiagnosticResultId.HasValue)
                {
                    // Load Diagnostic.
                    var diag = Factory.GetById <IDiagnosticResultDto>(quickRequest.DiagnosticResultId.Value.ToString());

                    // Create Update.
                    diag.RequestId = requestId;

                    // Save Update.
                    Factory.Save(diag);
                }
                else
                {
                    // Upload File.
                    if (Request?.Files[0] != null)
                    {
                        // Parse Upload File.
                        var diag = DiagnosticFileParser.ParseFile(Request.Files[0].InputStream,
                                                                  DiagnosticTool.AutoEnginuity,
                                                                  DiagnosticFileType.XML);

                        // Assign Request.
                        diag.RequestId = requestId;

                        // Save Result.
                        diag = Factory.Save(diag);

                        // Update Result Id.
                        quickRequest.DiagnosticResultId = diag.ResultId;
                    }
                }
            }
            catch (Exception e)
            {
                Logger.LogException(e, new { quickRequest, repairRequest });
            }

            return(requestId);
        }
Пример #8
0
        public IRepairDto Save(IRepairDto update)
        {
            // Load Type.
            var result = update;

            if (!UserHasRoles(ApplicationRoles.RepairCreate, ApplicationRoles.RepairEdit))
            {
                // No Group Access.
                result.UpdateResult = new UpdateResultDto(false, "You do not have access to Repairs.");
                return(result);
            }

            var repair = update.RepairId == 0 ? null : Db.RepairOrders.Find(update.RepairId);

            if (repair == null)
            {
                repair = new OrderEntityModel
                {
                    AirBagsDeployed          = update.AirBagsDeployed,
                    AirBagsVisualDeployments = update.AirBagsVisualDeployments,
                    DrivableInd              = update.DrivableInd,
                    InsuranceCompanyId       = update.InsuranceCompanyId,
                    InsuranceCompanyOther    = update.InsuranceCompanyOther,
                    InsuranceReferenceNumber = update.InsuranceReferenceNumber,
                    ShopReferenceNumber      = update.ShopRONumber,
                    ShopGuid          = update.ShopGuid,
                    Odometer          = Convert.ToInt32(update.Odometer),
                    CreatedByUserGuid = User.UserGuid,
                    CreatedDt         = DateTime.UtcNow,
                    VehicleVIN        = update.VehicleVIN,
                    Status            = RepairStatuses.Active
                };

                Db.RepairOrders.Add(repair);
                Db.SaveChanges();

                result.RepairId = repair.OrderId;

                var updateMessage = "Repair Created Successfully.";
                result.UpdateResult = new UpdateResultDto(true, updateMessage);
            }
            else
            {
                repair.AirBagsDeployed          = update.AirBagsDeployed;
                repair.AirBagsVisualDeployments = update.AirBagsVisualDeployments;
                repair.DrivableInd              = update.DrivableInd;
                repair.InsuranceCompanyId       = update.InsuranceCompanyId;
                repair.InsuranceCompanyOther    = update.InsuranceCompanyOther;
                repair.InsuranceReferenceNumber = update.InsuranceReferenceNumber;
                repair.ShopReferenceNumber      = update.ShopRONumber;
                repair.ShopGuid          = update.ShopGuid;
                repair.Odometer          = Convert.ToInt32(update.Odometer);
                repair.VehicleVIN        = update.VehicleVIN;
                repair.UpdatedDt         = DateTimeOffset.UtcNow;
                repair.UpdatedByUserGuid = User.UserGuid;
                repair.Status            = RepairStatuses.Active;

                Db.SaveChanges();

                var updateMessage = "Repair Updated Successfully.";
                result.UpdateResult = new UpdateResultDto(true, updateMessage);
            }

            var param = new
            {
                OrderId        = repair.OrderId,
                PointsOfImpact = update.PointsOfImpact == null ? string.Empty : string.Join(",", update.PointsOfImpact.ToList())
            };

            Db.Database.SqlQuery <object>(
                $"Repair.usp_SaveOrderPointsOfImpact @OrderId = '{param.OrderId}' , @PointsOfImpact = '{param.PointsOfImpact}'")
            .ToListAsync();

            return(result);
        }