public HttpResponseMessage InsertCustomerInformation(PrizeDataModel prizeData) { //Important: The sum of a customer prizes - PrizeAmount - needs to be exactly the amount distribute TotalPrizeAmount. string requestMessage = Helpers.ValidateParameterData(prizeData); if (!string.IsNullOrEmpty(requestMessage)) { return(Request.CreateResponse(HttpStatusCode.BadRequest, requestMessage)); } else if (_PromoRepo.CheckCustomerExistsEF(prizeData.Customer)) { requestMessage = $"Customer {prizeData.Customer.FirstName} {prizeData.Customer.LastName} Already Exists"; return(Request.CreateResponse(HttpStatusCode.Conflict, requestMessage)); } try { //throw new Exception(); //test for exceptions if (prizeData.numberOfPrizes > 0) { List <PromoSpPrize> customerPrizes = new List <PromoSpPrize>(); List <decimal> poolPrice = Helpers.DistributeInBuckets((decimal)prizeData.totalPrizeAmount, (int)prizeData.numberOfPrizes).ToList <decimal>(); for (int i = 0; i < prizeData.numberOfPrizes; i++) { //create and add each new promoPrize to list customerPrizes.Add(new PromoSpPrize { PrizeAmount = poolPrice.ElementAt(i), ActivationDate = DateTime.Now, ExpirationDate = null, RedeemedDate = null, IsRedeemed = false }); } // save prizeData to db if (_PromoRepo.InsertCustomerInformationEF(prizeData.Customer, customerPrizes)) { requestMessage = $"Created: {prizeData.Customer.FirstName} {prizeData.Customer.LastName}"; return(Request.CreateResponse(HttpStatusCode.Created, requestMessage)); } } } catch (Exception ex) { requestMessage = $"{ex}"; return(Request.CreateResponse(HttpStatusCode.InternalServerError, requestMessage)); } requestMessage = $"No Actions executed for Customer: {prizeData.Customer.FirstName} {prizeData.Customer.LastName}"; return(Request.CreateResponse(HttpStatusCode.InternalServerError, requestMessage)); }
public static string ValidateParameterData(PrizeDataModel prizeData, bool checkNumerics = true) { string requestMessage = string.Empty; string newLine = Environment.NewLine; //always check cu info if (prizeData == null) { requestMessage += $"Request Data Object [FromBody] is null, cannot bind data,{newLine}"; } else if (prizeData.Customer == null) { requestMessage += $"Request Data Object [Customer] is null,{newLine}"; } else if (string.IsNullOrEmpty(prizeData.Customer.FirstName)) { requestMessage += $"Parameter [Customer.FirstName] is required,{newLine}"; } else if (string.IsNullOrEmpty(prizeData.Customer.LastName)) { requestMessage += $"Parameter [Customer.LastName] is required,{newLine}"; } //checking numerics if (checkNumerics) { if (prizeData.numberOfPrizes == null || prizeData.numberOfPrizes < 1) { requestMessage += $"Parameter [numberOfPrizes] is required,{newLine}"; } else if (prizeData.totalPrizeAmount == null) { requestMessage += $"Parameter [totalPrizeAmount] is required,{newLine}"; } } return(requestMessage); }