public Request AddRequest(Request request, out string errorMessage) { if (ValidateRequest(request, out errorMessage)) { IRequestDataProvider requestDataProvider = RequestDataProviderFactory.GetRequestDataProvider(); if (requestDataProvider != null) { List<Request> requests = requestDataProvider.GetRequestsByAccountId(request.AccountId); if (requests == null || requests.FindAll(x => x.TravelDate >= DateTime.Today).Count < 10) return requestDataProvider.SaveRequest(request); errorMessage = "10 requests limit reached. You may not submit more than 10 planned requests at one time."; } } return null; }
private bool ValidateRequest(Request request, out string errorMessage) { bool response = false; if (request == null) errorMessage = "Request is null."; else if (string.IsNullOrEmpty(request.AccountId) || !_accountProvider.Exists(request.AccountId)) errorMessage = "Request AccountId is null or invalid."; else if (string.IsNullOrEmpty(request.FromAirport)) errorMessage = "Request From Airport is null or empty."; else if (string.IsNullOrEmpty(request.ToAirport)) errorMessage = "Request To Airport is null or empty."; else if (request.TravelDate < (DateTime.Today.AddDays(2)) || request.TravelDate >= (DateTime.Today.AddDays(150))) errorMessage = "Travel Date should be 2 days out and less than 5 months ahead."; else if (request.Passengers == null || request.Passengers.Count == 0) errorMessage = "Passengers not present. Atleast 1 passenger is required."; else if (request.Passengers.Count > 8) errorMessage = "Maximum 8 Passengers allowed per request."; else if (request.BidAmount <= 0) errorMessage = "Bid Amount cannot be negative or zero"; else response = ValidatePassengers(request.Passengers, out errorMessage); return response; }
public Request UpdateRequest(Request request, out string errorMessage) { if (ValidateRequest(request, out errorMessage)) { IRequestDataProvider requestDataProvider = RequestDataProviderFactory.GetRequestDataProvider(); if (requestDataProvider != null) { Request updatedRequest = requestDataProvider.UpdateRequest(request, out errorMessage); return updatedRequest; } } return null; }
private static bool ValidateRequestDate(Request request) { if (request == null) return false; if ((request.TravelDate == DateTime.Today)) return true; if ((request.TravelDate > DateTime.Today) && (request.TravelDate - DateTime.Now).TotalHours < 12) return true; return false; }
public void SaveRequestTest() { if (string.IsNullOrEmpty(request.RequestId)) { var target = new RequestDataProvider(); Request expected = null; Request actual; actual = target.SaveRequest(request); Assert.IsNotNull(actual); ValidateRequest(actual); request = actual; } }
private void ValidateRequest(Request actual) { Assert.AreEqual(actual.AccountId, request.AccountId); Assert.AreEqual(actual.FriendlyRequestId, request.FriendlyRequestId); Assert.AreEqual(actual.FromAirport, request.FromAirport); Assert.AreEqual(actual.ToAirport, request.ToAirport); Assert.AreEqual(actual.TravelDate, request.TravelDate); Assert.AreEqual(actual.WaitListPosition, request.WaitListPosition); }
private List<Request> GetRequests(DataSet dataset, MySqlDatabase db, bool email = false) { var requests = new List<Request>(); if (dataset != null && dataset.Tables.Count > 0) { if (dataset.Tables[0].Rows != null && dataset.Tables[0].Rows.Count > 0) { foreach (DataRow row in dataset.Tables[0].Rows) { try { if (Convert.IsDBNull(row["RequestId"])) continue; var request = new Request { AccountId = row["AccountId"].GetString(), FromAirport = row["FromAirport"].GetString(), FromAirportName = row["FromAirportName"].GetString(), ToAirport = row["ToAirport"].GetString(), ToAirportName = row["ToAirportName"].GetString(), RequestId = row["RequestId"].GetString(), FriendlyRequestId = row["FriendlyRequestId"].GetString(), WaitListPosition = row["WaitListPosition"].GetInt(), Passengers = GetPassengers(row["RequestId"].GetString(), db), TravelDate = row["TravelDate"].GetDate(), AddDate = row["AddDate"].GetDate(), BidAmount = row["BidAmount"].GetDecimal(), ContactNumber = row["ContactNumber"].GetString(), TrainPnr = row["TrainPnr"].GetString(), }; if (email) request.Email = row["Email"].GetString(); requests.Add(request); } catch (Exception ex) { } } return requests.Count > 0 ? requests : null; } } return null; }
public Request UpdateRequest(Request request, out string errorMessage) { try { errorMessage = string.Empty; string requestId; request.WaitListPosition = GetNextWaitlistPosition(request.FromAirport, request.ToAirport, request.TravelDate); DateTime addDate = DateTime.Now; using (var connection = new MySqlConnection(DbConfiguration.DatabaseWrite)) { var cmd = new MySqlCommand("spUpdateRequest", connection) { CommandType = CommandType.StoredProcedure }; cmd.Parameters.Add(new MySqlParameter("infromAirport", request.FromAirport)); cmd.Parameters.Add(new MySqlParameter("infromAirportName", request.FromAirportName)); cmd.Parameters.Add(new MySqlParameter("intoAirport", request.ToAirport)); cmd.Parameters.Add(new MySqlParameter("intoAirportName", request.ToAirportName)); cmd.Parameters.Add(new MySqlParameter("intravelDate", request.TravelDate.ToString("yyyy-MM-dd HH':'mm':'ss"))); cmd.Parameters.Add(new MySqlParameter("infriendlyRequestId", request.FriendlyRequestId)); cmd.Parameters.Add(new MySqlParameter("inwaitListPosition", request.WaitListPosition)); cmd.Parameters.Add(new MySqlParameter("inaddDate", addDate)); cmd.Parameters.Add(new MySqlParameter("inbidAmount", request.BidAmount)); cmd.Parameters.Add(new MySqlParameter("intrainPnr", request.TrainPnr)); cmd.Parameters.Add(new MySqlParameter("inContactNumber", request.ContactNumber)); cmd.Parameters.Add(new MySqlParameter("outrequestId", MySqlDbType.VarChar)); cmd.Parameters["outrequestId"].Direction = ParameterDirection.Output; connection.Open(); cmd.ExecuteNonQuery(); requestId = Convert.ToString(cmd.Parameters["outrequestId"].Value); } DeletePassengers(requestId); SavePassengers(request.Passengers, requestId); request.RequestId = requestId; request.AddDate = addDate; return request; } catch (Exception ex) { errorMessage = ex.Message; DBExceptionLogger.LogException(ex, Source, "UpdateRequest", Severity.Critical); } return null; }
public Request AddRequest(Request modelRequest, out string errorMessage) { errorMessage = string.Empty; return GetSampleRequest(); }
public Request UpdateRequest(Request request, out string errorMessage) { errorMessage = string.Empty; return request; }
public void AddRequestTest() { if (string.IsNullOrEmpty(request.RequestId)) { IAccountProvider accountProvider = AccountProviderFactory.GetAccountProvider(); var target = new RequestProvider(accountProvider); string errorMessage = string.Empty; string errorMessageExpected = string.Empty; Request expected = null; Request actual; actual = target.AddRequest(request, out errorMessage); Assert.AreEqual(errorMessageExpected, errorMessage, errorMessage); Assert.IsNotNull(actual); request = actual; } }