Пример #1
0
        private Auction SetupNewAuction(AddAuctionRequestModel request, int loggedInUserId, int auctionCreatorId)
        {
            int defaultAuctionStatusId = ValidateAndFetchAuctionStatus();

            return(new Auction()
            {
                Name = request.AboutAuction.AuctionName,
                StartingPrice = ConvertStringToDecimal(request.AboutAuction.AuctionStartingPrice),
                ValueAddedTax = request.AboutAuction.AuctionValueAddedTax,
                StartDate = request.AboutAuction.AuctionStartDate ?? null,
                ApplyTillDate = request.AboutAuction.AuctionApplyTillDate,
                EndDate = request.AboutAuction.AuctionEndDate,
                AuctionCategoryId = request.AboutAuction.AuctionTopCategoryId,
                AuctionTypeId = request.AboutAuction.AuctionSubCategoryId ?? request.AboutAuction.AuctionSubCategoryId.Value,
                AuctionStatusId = defaultAuctionStatusId,
                AuctionFormatId = request.AboutAuction.AuctionFormatId,
                AuctionCreatorId = auctionCreatorId,
                AuctionExternalWebsite = request.AboutAuctionCreator.AuctionExternalWebsite, // NOTE: KKE: No idea if this is correct placement!
                Requirements = request.AboutAuctionCreator.AuctionRequirements,
                CreatedAt = DateTime.UtcNow,
                // CreatedBy = loggedInUserId,
                LastUpdatedAt = DateTime.UtcNow,
                LastUpdatedBy = loggedInUserId
            });
        }
Пример #2
0
        public int Create(AddAuctionRequestModel request)
        {
            if (request.IsNotSpecified())
            {
                throw new WebApiException(HttpStatusCode.BadRequest, AuctionErrorMessages.MissingAuctionsInformation);
            }
            if (request.AboutAuction.IsNotSpecified())
            {
                throw new WebApiException(HttpStatusCode.BadRequest, AuctionErrorMessages.MissingAuctionsInformation);
            }
            if (request.AboutAuction.AuctionTopCategoryId.IsNotSpecified())
            {
                throw new WebApiException(HttpStatusCode.BadRequest, AuctionErrorMessages.MissingAuctionsInformation);
            }

            if (request.AboutAuction.AuctionTopCategoryId == AuctionCategories.Item)
            {
                return(CreateItemAuction(request));
            }
            if (request.AboutAuction.AuctionTopCategoryId == AuctionCategories.Vehicle)
            {
                return(CreateVehicleAuction(request));
            }
            if (request.AboutAuction.AuctionTopCategoryId == AuctionCategories.Property)
            {
                return(CreatePropertyAuction(request));
            }

            throw new WebApiException(HttpStatusCode.BadRequest, AuctionErrorMessages.MissingAuctionsInformation);
        }
Пример #3
0
        private int CreateVehicleAuction(AddAuctionRequestModel request)
        {
            // ValidateAuctionItemCreate(request);

            int loggedInUserId = m_permissionService.GetAndValidateUserId();

            return(m_auctionsRepository.CreateAuction(request, loggedInUserId));
        }
Пример #4
0
        public int CreateAuction(AddAuctionRequestModel request, int loggedInUserId)
        {
            // if the new auction id(result) is 0, something is wrong with the auction information!
            int newAuctionId = 0;

            var strategy = m_context.Database.CreateExecutionStrategy();

            strategy.Execute(() =>
            {
                try
                {
                    using (var transaction = m_context.Database.BeginTransaction())
                    {
                        // setup & add - Auction Creator
                        AuctionCreator auctionCreator = SetupNewAuctionCreator(request, loggedInUserId);
                        m_context.AuctionCreators.Add(auctionCreator);
                        m_context.SaveChanges();

                        // setup & add - Auction
                        Auction newAuction            = SetupNewAuction(request, loggedInUserId, auctionCreator.AuctionCreatorId);
                        EntityEntry <Auction> auction = m_context.Auctions.Add(newAuction);
                        m_context.SaveChanges();

                        // setup & add - Auction Item
                        AuctionItem newAuctionItem = SetupNewAuctionItem(newAuction, loggedInUserId);
                        m_context.AuctionItems.Add(newAuctionItem);
                        m_context.SaveChanges();

                        // setup & add - Auction Item Details
                        if (request.AboutAuction.AuctionTopCategoryId == AuctionCategories.Item)
                        {
                            SetItemAuctionDetails(request, loggedInUserId, newAuctionItem);
                        }
                        if (request.AboutAuction.AuctionTopCategoryId == AuctionCategories.Vehicle)
                        {
                            SetVehicleAuctionDetails(request, loggedInUserId, newAuctionItem);
                        }
                        if (request.AboutAuction.AuctionTopCategoryId == AuctionCategories.Property)
                        {
                            SetPropertyAuctionDetails(request, loggedInUserId, newAuctionItem);
                        }

                        newAuctionId = auction.Entity.AuctionId;

                        m_context.SaveChanges();
                        transaction.Commit();

                        return(newAuctionId);
                    }
                }
                catch (Exception ex)
                {
                    throw new WebApiException(HttpStatusCode.BadRequest, AuctionErrorMessages.CouldNotCreateAuction, ex);
                }
            });

            return(newAuctionId);
        }
Пример #5
0
 private AuctionCreator SetupNewAuctionCreator(AddAuctionRequestModel request, int loggedInUserId)
 {
     return(new AuctionCreator()
     {
         Name = request.AboutAuctionCreator.AuctionCreatorName,
         ContactEmail = request.AboutAuctionCreator.AuctionCreatorEmail,
         ContactPhone = request.AboutAuctionCreator.AuctionCreatorPhone,
         ContactAddress = request.AboutAuctionCreator.AuctionCreatorAddress,
         CreatedAt = DateTime.UtcNow,
         // CreatedBy = loggedInUserId,
         LastUpdatedAt = DateTime.UtcNow,
         LastUpdatedBy = loggedInUserId
     });
 }
Пример #6
0
 private AuctionDetails SetupNewItemAuctionDetails(AddAuctionRequestModel request, AuctionItem newAuctionItem, int loggedInUserId)
 {
     return(new AuctionDetails()
     {
         AuctionItemId = newAuctionItem.AuctionItemId,
         Model = request.ItemAuction.ItemModel,
         ManufacturingYear = request.ItemAuction.ItemManufacturingYear,
         ConditionId = request.ItemAuction.ItemConditionId,
         Volume = request.ItemAuction.ItemVolume,
         CompanyTypeId = request.ItemAuction.ItemCompanyTypeId,
         Evaluation = request.ItemAuction.ItemEvaluation,
         CreatedAt = DateTime.UtcNow,
         // CreatedBy = loggedInUserId,
         LastUpdatedAt = DateTime.UtcNow,
         LastUpdatedBy = loggedInUserId
     });
 }
Пример #7
0
 private AuctionDetails SetupNewPropertyAuctionDetails(AddAuctionRequestModel request, AuctionItem newAuctionItem, int loggedInUserId)
 {
     return(new AuctionDetails()
     {
         AuctionItemId = newAuctionItem.AuctionItemId,
         Coordinates = request.PropertyAuction.PropertyCoordinates,
         RegionId = request.PropertyAuction.PropertyRegionId,
         CadastreNumber = request.PropertyAuction.PropertyCadastreNumber,
         MeasurementValue = ConvertStringToDecimal(request.PropertyAuction.PropertyMeasurementValue),
         MeasurementTypeId = request.PropertyAuction.PropertyMeasurementTypeId,
         Address = request.PropertyAuction.PropertyAddress,
         FloorCount = request.PropertyAuction.PropertyFloorCount,
         RoomCount = request.PropertyAuction.PropertyRoomCount,
         Evaluation = request.PropertyAuction.PropertyEvaluation,
         CreatedAt = DateTime.UtcNow,
         // CreatedBy = loggedInUserId,
         LastUpdatedAt = DateTime.UtcNow,
         LastUpdatedBy = loggedInUserId
     });
 }
Пример #8
0
 private AuctionDetails SetupNewVehicleAuctionDetails(AddAuctionRequestModel request, AuctionItem newAuctionItem, int loggedInUserId)
 {
     return(new AuctionDetails()
     {
         AuctionItemId = newAuctionItem.AuctionItemId,
         Make = request.VehicleAuction.VehicleMake,
         Model = request.VehicleAuction.VehicleModel,
         ManufacturingYear = request.VehicleAuction.VehicleManufacturingYear,
         RegistrationNumber = request.VehicleAuction.VehicleRegistrationNumber,
         IdentificationNumber = request.VehicleAuction.VehicleIdentificationNumber,
         InspectionActive = request.VehicleAuction.VehicleInspectionActive,
         TransmissionId = request.VehicleAuction.VehicleTransmissionId,
         FuelTypeId = request.VehicleAuction.VehicleFuelTypeId,
         EngineSize = request.VehicleAuction.VehicleEngineSize,
         Axis = request.VehicleAuction.VehicleAxis,
         DimensionValue = request.VehicleAuction.VehicleDimensionValue,
         DimensionTypeId = request.VehicleAuction.VehicleDimensionType,
         Evaluation = request.VehicleAuction.VehicleEvaluation,
         CreatedAt = DateTime.UtcNow,
         // CreatedBy = loggedInUserId,
         LastUpdatedAt = DateTime.UtcNow,
         LastUpdatedBy = loggedInUserId
     });
 }
Пример #9
0
        private void SetVehicleAuctionDetails(AddAuctionRequestModel request, int loggedInUserId, AuctionItem newAuctionItem)
        {
            AuctionDetails itemAuctionDetails = SetupNewVehicleAuctionDetails(request, newAuctionItem, loggedInUserId);

            m_context.AuctionDetails.Add(itemAuctionDetails);
        }
Пример #10
0
 public IActionResult Create([FromBody] AddAuctionRequestModel request)
 {
     return(Ok(m_auctionsService.Create(request)));
 }