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 }); }
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); }
private int CreateVehicleAuction(AddAuctionRequestModel request) { // ValidateAuctionItemCreate(request); int loggedInUserId = m_permissionService.GetAndValidateUserId(); return(m_auctionsRepository.CreateAuction(request, loggedInUserId)); }
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); }
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 }); }
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 }); }
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 }); }
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 }); }
private void SetVehicleAuctionDetails(AddAuctionRequestModel request, int loggedInUserId, AuctionItem newAuctionItem) { AuctionDetails itemAuctionDetails = SetupNewVehicleAuctionDetails(request, newAuctionItem, loggedInUserId); m_context.AuctionDetails.Add(itemAuctionDetails); }
public IActionResult Create([FromBody] AddAuctionRequestModel request) { return(Ok(m_auctionsService.Create(request))); }