Exemplo n.º 1
0
 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;
 }
Exemplo n.º 2
0
 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;
 }
Exemplo n.º 3
0
 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;
 }
Exemplo n.º 4
0
        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);
 }
Exemplo n.º 7
0
 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;
 }
Exemplo n.º 8
0
 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;
 }
Exemplo n.º 9
0
 public Request AddRequest(Request modelRequest, out string errorMessage)
 {
     errorMessage = string.Empty;
     return GetSampleRequest();
 }
Exemplo n.º 10
0
 public Request UpdateRequest(Request request, out string errorMessage)
 {
     errorMessage = string.Empty;
     return request;
 }
Exemplo n.º 11
0
        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;
            }
        }