/// <summary> /// Attempts to update Transit with "barCode" and its associated package so as to cancel transit /// sets transit's "DateCancelled" as today /// </summary> /// <param name="barCode"></param> /// <param name="dateCancelled"></param> /// <returns> Result object according to success or failure </returns> public Result CancelTransit(string barCode, DateTime dateCancelled) // (P. 07-04-2015) { Result cResult = new Result(); Package package = _packageRepository.GetPackageWidthBarCode(barCode); if (package == null) // Case: not found { cResult.ErrorMessage = TransitResult.BarCodeNotFound; cResult.Success = false; return(cResult); } List <PackageTransit> activeTransits = _packageRepository.GetActiveTransitsByPackage(package); if (activeTransits.Count() == 0) // Case: not found { cResult.ErrorMessage = TransitResult.TransitNotFound; cResult.Success = false; return(cResult); } PackageTransit transit = activeTransits.ElementAt(0); transit.DateCancelled = DateTime.Today; // set transit as cancelled _packageRepository.UpdateTransit(transit); // update transits DB package.CurrentStatus = PackageStatus.Lost; // set packagestatus _packageRepository.Update(package); // update packages DB cResult.Success = true; return(cResult); }
// ********************************************************************* public static int InsertPackageTransit(PackageTransit t) { int newId = mockPackageTransitDb.Count(); t.TransitId = newId; mockPackageTransitDb[newId] = t; return(newId); }
public int InsertTransit(PackageTransit packageTransit) { using (SqlConnection connection = new SqlConnection(_connectionString)) { connection.Open(); return(DataAccess.InsertPackageTransit(connection, packageTransit)); } }
/// <summary> /// Attempts to update package with "barCode" and its associated transit /// sets packages location and status /// sets transit's "date received" as today /// </summary> /// <param name="barCode"></param> /// <param name="receiverCentre"></param> /// <param name="date"></param> /// <returns> Result object according to success or failure </returns> public Result Receive(string barCode, DistributionCentre receiverCentre, DateTime receiveDate) { // (P. 24-03-2015) Result receiveResult = new Result(); Package package = _packageRepository.GetPackageWidthBarCode(barCode); if (package == null) // Case: not found { receiveResult.ErrorMessage = TransitResult.BarCodeNotFound; receiveResult.Success = false; return(receiveResult); } if (package.CurrentLocation != null && package.CurrentLocation.CentreId == receiverCentre.CentreId) { receiveResult.Success = false; receiveResult.ErrorMessage = TransitResult.PackageAlreadyAtDestination; return(receiveResult); } PackageTransit activeTransit = _packageRepository.GetTransit(package, receiverCentre); if (activeTransit == null) { // Maybe the open transit has a different destination activeTransit = _packageRepository.GetOpenTransit(package); } // If there is an active transit set Date Received or Date Cancelled and update // Even if there is no transit record the receive should still work if (activeTransit != null) { if (receiveDate < activeTransit.DateSent) { receiveResult.Success = false; receiveResult.ErrorMessage = PackageResult.ReceiveDateCannotBeEarlierThanSend; return(receiveResult); } if (activeTransit.ReceiverCentreId == receiverCentre.CentreId) { activeTransit.DateReceived = receiveDate; } else { activeTransit.DateCancelled = receiveDate; // something went wrong with the transit so just cancel it } _packageRepository.UpdateTransit(activeTransit); } package.CurrentStatus = PackageStatus.InStock; // set packagestatus package.CurrentLocationCentreId = receiverCentre.CentreId; // set package location package.DistributedByEmployeeId = null; // set distributed by employee to null _packageRepository.Update(package); // update packages DB receiveResult.Success = true; receiveResult.Id = package.PackageId; return(receiveResult); }
public void UpdateTransit(PackageTransit transit) { using (SqlConnection connection = new SqlConnection(_connectionString)) { connection.Open(); DataAccess.UpdatePackageTransit(connection, transit); } return; }
public static int InsertPackageTransit(string connectionString, PackageTransit packageTransit) { using (var ctx = new Entities(connectionString)) { ctx.PackageTransit.Add(packageTransit); ctx.SaveChanges(); return(packageTransit.TransitId); } }
// ********************************************************************* public static int AddPackageTransit(Package package, DistributionCentre sender, DistributionCentre receiver, DateTime dateSent) { PackageTransit newTransit = new PackageTransit(); newTransit.SenderCentre = sender; newTransit.SenderCentre = receiver; newTransit.Package = package; newTransit.DateSent = dateSent; newTransit.DateReceived = null; newTransit.DateCancelled = null; return(InsertPackageTransit(newTransit)); }
public PackageTransit GetTransit(Package package, DistributionCentre receiver) { PackageTransit packageTransit = null; packageTransit = DataAccess.GetPackageTransit(_connectionString, package, receiver); if (packageTransit == null) { return(null); } return(packageTransit); }
public PackageTransit GetOpenTransit(Package package) { PackageTransit packageTransit = null; packageTransit = DataAccess.GetPackageTransit(_connectionString, package); if (packageTransit == null) { return(null); } return(packageTransit); }
public void TestReceivePackage_Successfully() { MockPackageRepository myMockPackageRepo = new MockPackageRepository(); PackageService packageService = new PackageService(myMockPackageRepo); Package package1 = MockDataAccess.GetPackage(3); DistributionCentre myReceiverCentre = MockDataAccess.GetDistributionCentre(3); int newTransitId = InsertMockTransit(package1, 2, 3); // insert transit packageService.Receive(package1.BarCode, myReceiverCentre, DateTime.Today); PackageTransit finishedTransit = MockDataAccess.GetPackageTransit(newTransitId); Debug.WriteLine(finishedTransit.ToString()); Assert.IsTrue(finishedTransit.ReceiverCentre == myReceiverCentre); }
public int InsertMockTransit(Package Package, int SenderId, int ReceiverId) { DistributionCentre mySenderCentre = MockDataAccess.GetDistributionCentre(SenderId); DistributionCentre myReceiverCentre = MockDataAccess.GetDistributionCentre(ReceiverId); PackageTransit newTransit = new PackageTransit(); newTransit.Package = Package; newTransit.DateSent = DateTime.Today.AddDays(-2); newTransit.SenderCentre = mySenderCentre; newTransit.ReceiverCentre = myReceiverCentre; int newTransitId = MockDataAccess.InsertPackageTransit(newTransit); return(newTransitId); }
public int InsertTransit(PackageTransit PackageTransit) { Package tempPackage = new Package(); tempPackage.PackageId = 1; tempPackage.BarCode = "012365423"; DateTime dateTemp = new DateTime(2015, 05, 20); tempPackage.ExpirationDate = dateTemp; tempPackage.PackageType.PackageTypeId = 1; tempPackage.CurrentLocation.CentreId = 1; tempPackage.CurrentStatus = PackageStatus.InStock; // need more work to complete! return(1); }
public static PackageTransit GetPackageTransit(SqlConnection connection, Package package, DistributionCentre receiver) { PackageTransit packageTransit = null; // Define Update Query with Parameter string query = "SELECT TransitId, PackageId, SenderCentreId, ReceiverCentreId, " + "DateSent, DateReceived, DateCancelled " + "FROM dbo.PackageTransit " + "WHERE PackageId = @PackageId and " + "ReceiverCentreId = ISNULL(@ReceiverCentreId, ReceiverCentreId) " + "and DateReceived is null and DateCancelled is null"; var cmd = new SqlCommand(query); cmd.Connection = connection; cmd.Parameters.AddWithValue("@PackageId", package.PackageId); cmd.Parameters.AddWithValue("@ReceiverCentreId", receiver == null ? DBNull.Value : (object)receiver.CentreId); using (SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.Default)) { if (reader.Read()) { packageTransit = new PackageTransit(); packageTransit.TransitId = Convert.ToInt32(reader["TransitId"]); packageTransit.Package = new Package(); packageTransit.Package.PackageId = Convert.ToInt32(reader["PackageId"]); packageTransit.SenderCentre = new DistributionCentre(); packageTransit.SenderCentre.CentreId = Convert.ToInt32(reader["SenderCentreId"]); packageTransit.ReceiverCentre = new DistributionCentre(); packageTransit.ReceiverCentre.CentreId = Convert.ToInt32(reader["ReceiverCentreId"]); packageTransit.DateSent = Convert.ToDateTime(reader["DateSent"]); if (reader["DateReceived"] != DBNull.Value) { packageTransit.DateReceived = Convert.ToDateTime(reader["DateReceived"]); } if (reader["DateCancelled"] != DBNull.Value) { packageTransit.DateCancelled = Convert.ToDateTime(reader["DateCancelled"]); } } } return(packageTransit); }
public PackageTransit GetTransit(Package package, DistributionCentre receiver) { PackageTransit packageTransit = null; using (SqlConnection connection = new SqlConnection(_connectionString)) { connection.Open(); packageTransit = DataAccess.GetPackageTransit(connection, package, receiver); if (packageTransit == null) { return(null); } } return(packageTransit); }
public static void UpdatePackageTransit(string connectionString, PackageTransit transit) { // Define Insert Query with Parameter using (var ctx = new Entities(connectionString)) { var packageTransitRecord = (from e in ctx.PackageTransit where e.TransitId == transit.TransitId select e).First(); packageTransitRecord.PackageId = transit.PackageId; packageTransitRecord.SenderCentreId = transit.SenderCentreId; packageTransitRecord.ReceiverCentreId = transit.ReceiverCentreId; packageTransitRecord.DateSent = transit.DateSent; packageTransitRecord.DateReceived = transit.DateReceived; packageTransitRecord.DateCancelled = transit.DateCancelled; ctx.SaveChanges(); } }
public static void UpdateTransit(SqlConnection connection, PackageTransit transit) { string cmdStr = "UPDATE dbo.PackageTransit SET Package = @Package, SenderCentre = @SenderId, " + "ReceiverCentre = @ReceiverCentreId, DateSent = @DateSent , " + " DateReceived = @DateReceived, DateCancelled = @DateCancelled " + "WHERE TransitId = @TransitId "; using (var cmd = new SqlCommand(cmdStr, connection)) { cmd.Parameters.AddWithValue("@Package", SqlDbType.Int).Value = (int)transit.Package.PackageId; cmd.Parameters.AddWithValue("@SenderCentre", SqlDbType.Int).Value = (int)transit.SenderCentre.CentreId; cmd.Parameters.AddWithValue("@ReceiverCentre", SqlDbType.Int).Value = (int)transit.ReceiverCentre.CentreId; cmd.Parameters.AddWithValue("@DateSent", SqlDbType.DateTime).Value = (DateTime)transit.DateSent; cmd.Parameters.AddWithValue("@DateReceived", SqlDbType.DateTime).Value = (DateTime)transit.DateReceived; cmd.Parameters.AddWithValue("@DateCancelled", SqlDbType.DateTime).Value = (DateTime)transit.DateCancelled; int effected = cmd.ExecuteNonQuery(); } }
public static PackageTransit GetPackageTransit(string connectionString, Package package) { PackageTransit packageTransit = null; // Define Update Query with Parameter using (var ctx = new Entities(connectionString)) { var packageTransitRecord = (from e in ctx.PackageTransit where e.PackageId == package.PackageId && e.DateReceived == null && e.DateCancelled == null select e).FirstOrDefault(); packageTransit = packageTransitRecord; } return(packageTransit); }
public static int InsertPackageTransit(SqlConnection connection, PackageTransit packageT) { // (p. 24/03/15 ) string query = " INSERT INTO dbo.PackageTransit (PackageId , SenderCentreId, " + " ReceiverCentreId, DateSent, DateReceived, DateCancelled) " + " VALUES (@Package , @SenderCentre, @ReceiverCentre, @DateSent, @DateReceived, @DateCancelled)" + " SET @newId = SCOPE_IDENTITY();"; //var cmd = new SqlCommand(query); //cmd.Connection = connection; using (var cmd = new SqlCommand(query, connection) /*SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.Default)*/) { cmd.Parameters.Add("@Package", SqlDbType.Int).Value = (int)packageT.Package.PackageId; cmd.Parameters.Add("@SenderCentre", SqlDbType.Int).Value = (int)packageT.SenderCentre.CentreId; cmd.Parameters.Add("@ReceiverCentre", SqlDbType.Int).Value = (int)packageT.ReceiverCentre.CentreId; cmd.Parameters.Add("@DateSent", SqlDbType.DateTime).Value = (DateTime)packageT.DateSent; if (packageT.DateReceived == null) { cmd.Parameters.Add("@DateReceived", SqlDbType.DateTime).Value = DBNull.Value; } else { cmd.Parameters.Add("@DateReceived", SqlDbType.DateTime).Value = (DateTime)packageT.DateReceived; } if (packageT.DateCancelled == null) { cmd.Parameters.Add("@DateCancelled", SqlDbType.DateTime).Value = DBNull.Value; } else { cmd.Parameters.Add("@DateCancelled", SqlDbType.DateTime).Value = (DateTime)packageT.DateCancelled; } cmd.Parameters.Add("@newId", SqlDbType.Int).Direction = ParameterDirection.Output; cmd.CommandType = CommandType.Text; string qry = cmd.CommandText; int effect = cmd.ExecuteNonQuery(); //cmd.ExecuteScalar(); return((int)cmd.Parameters["@newId"].Value); } }
public static List <PackageTransit> GetAllPackageTransits(SqlConnection connection) { // (P. 04/04/2015) var allTransits = new List <PackageTransit>(); string query = "SELECT TransitId, PackageId, SenderCentreId, ReceiverCentreId, DateSent, DateReceived, DateCancelled FROM PackageTransit ORDER BY TransitId"; var cmd = new SqlCommand(query); cmd.Connection = connection; //Console.WriteLine(query); //string a = Console.ReadLine(); using (SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.Default)) { while (reader.Read()) { //Console.WriteLine(reader["transitId"]); //Console.ReadLine(); var transit = new PackageTransit(); transit = new PackageTransit(); transit.TransitId = Convert.ToInt32(reader["transitId"]); transit.Package = DataAccess.GetPackage(connection, Convert.ToInt32(reader["PackageId"])); // .PackageId=Convert.ToInt32(reader["PackageId"]); transit.SenderCentre = DataAccess.GetDistributionCentre(connection, Convert.ToInt32(reader["SenderCentreId"])); //transit.SenderCentre.CentreId = Convert.ToInt32(reader["SenderCentreId"]); transit.ReceiverCentre = DataAccess.GetDistributionCentre(connection, Convert.ToInt32(reader["ReceiverCentreId"])); // .CentreId = Convert.ToInt32(reader["ReceiverCentreId"]); transit.DateSent = Convert.ToDateTime(reader["DateSent"]); if (reader["DateReceived"] != DBNull.Value) { transit.DateReceived = Convert.ToDateTime(reader["DateReceived"]); } if (reader["DateCancelled"] != DBNull.Value) { transit.DateReceived = Convert.ToDateTime(reader["DateCancelled"]); } allTransits.Add(transit); } } return(allTransits); }
public static void UpdatePackageTransit(SqlConnection connection, PackageTransit transit) { // Define Insert Query with Parameter string cmdStr = "UPDATE dbo.PackageTransit " + "SET PackageId = @PackageId, " + "SenderCentreId = @SenderCentreId, " + "ReceiverCentreId = @ReceiverCentreId, " + "DateSent = @DateSent, " + "DateReceived = @DateReceived," + "DateCancelled = @DateCancelled " + " WHERE TransitId = @TransitId"; using (var cmd = new SqlCommand(cmdStr, connection)) { cmd.Parameters.AddWithValue("@PackageId", transit.Package.PackageId); cmd.Parameters.AddWithValue("@SenderCentreId", transit.SenderCentre.CentreId); cmd.Parameters.AddWithValue("@ReceiverCentreId", transit.ReceiverCentre.CentreId); cmd.Parameters.AddWithValue("@DateSent", transit.DateSent); cmd.Parameters.AddWithValue("@DateReceived", transit.DateReceived == null ? DBNull.Value : (object)transit.DateReceived.Value); cmd.Parameters.AddWithValue("@DateCancelled", transit.DateCancelled == null ? DBNull.Value : (object)transit.DateCancelled.Value); cmd.Parameters.AddWithValue("@TransitId", transit.TransitId); int effected = cmd.ExecuteNonQuery(); } }
public static void UpdatePackageTransit(PackageTransit transit) { mockPackageTransitDb[transit.TransitId] = transit; }
public int InsertTransit(PackageTransit packageTransit) { return(DataAccess.InsertPackageTransit(_connectionString, packageTransit)); }
public void UpdateTransit(PackageTransit transit) { DataAccess.UpdatePackageTransit(_connectionString, transit); }
public void UpdateTransit(PackageTransit pt) { MockDataAccess.UpdatePackageTransit(pt); }
//public int InsertTransit(PackageTransit PackageTransit) //{ // Package tempPackage = new Package(); // tempPackage.PackageId = 1; // tempPackage.BarCode = "012365423"; // DateTime dateTemp = new DateTime(2015, 05, 20); // tempPackage.ExpirationDate = dateTemp; // tempPackage.PackageType.PackageTypeId = 1; // tempPackage.CurrentLocation.CentreId = 1; // tempPackage.CurrentStatus = PackageStatus.InStock; // // need more work to complete! // return 1; //} public int InsertTransit(PackageTransit PackageTransit) { int transitId = MockDataAccess.InsertPackageTransit(PackageTransit); return(transitId); }
public string TransitToString(PackageTransit t) { return("Id:" + t.TransitId + " / PId:" + t.PackageId + " / from:" + t.SenderCentreId + " / to:" + t.ReceiverCentreId); }
/// <summary> /// Extended Send method which take Sender and Receiver Center and also do more check, /// do some check in package, sender and reciever center and also ckeck the sendDate. /// If the checks are passed the set the Package.CurrentStatus = InTransit, /// Set the Package.CurrentLocation = Null and Update(Package) /// and instantiate new PackageTransit object /// </summary> /// <param name="barCode"></param> /// <param name="senderCentre"></param> /// <param name="receiverCentre"></param> /// <param name="sendDate"></param> /// <returns> Result </returns> public Result Send(Package package, DistributionCentre senderCentre, DistributionCentre receiverCentre, DateTime sendDate) { Result sendResult = new Result(); if (package == null) // Case: not found { sendResult.ErrorMessage = PackageResult.BarCodeNotFound; sendResult.Success = false; return(sendResult); } if (package.CurrentStatus != PackageStatus.InStock) // Case: not in stock { sendResult.ErrorMessage = PackageResult.PackageIsNotInStock; sendResult.Success = false; return(sendResult); } if (package.CurrentLocation.CentreId == null) // Cass: Package already in Transit { sendResult.ErrorMessage = PackageResult.PackageInTransit + " or" + PackageResult.PackageElsewhere; sendResult.Success = false; return(sendResult); } if (package.CurrentLocation.CentreId != senderCentre.CentreId) // Case: not in this centre { sendResult.ErrorMessage = PackageResult.PackageElsewhere; sendResult.Success = false; return(sendResult); } if (receiverCentre == null) // Case: Receiver Centre { sendResult.ErrorMessage = TransitResult.ReceiverCentreNull; sendResult.Success = false; return(sendResult); } if (senderCentre.CentreId == receiverCentre.CentreId) { sendResult.ErrorMessage = TransitResult.PackageAlreadyAtDestination; sendResult.Success = false; return(sendResult); } // System.DateTime.Now.AddDays(-1) -> to get yesterday. might send the package on the same day //timeCompare DateTime.Compare(t1,t2) //Less than zero t1 is earlier than t2. | Zero t1 is the same as t2. | Greater than zero t1 is later than t2. int timeCompare = DateTime.Compare(System.DateTime.Now.AddDays(-1), sendDate); if (timeCompare > zero) { sendResult.ErrorMessage = TransitResult.InvalidSendDate; sendResult.Success = false; return(sendResult); } //Update the package package.CurrentStatus = PackageStatus.InTransit; // Proceed to set it as intransit package.CurrentLocation = null; // Remove current location _packageRepository.Update(package); // Update package sendResult.Success = true; //Create new PackageTransit PackageTransit packageTransit = new PackageTransit { Package = package, DateSent = sendDate, DateReceived = null, DateCancelled = null, SenderCentre = senderCentre, ReceiverCentre = receiverCentre, }; int TransitId = _packageRepository.InsertTransit(packageTransit); return(sendResult); }