public static void AddPackage(Package package) { using (var context = new Entities()) { context.Packages.Add(package); context.SaveChanges(); } }
/// <summary> /// Alters the package state. Created because receiving, discarding and distributing do essentially /// the same thing - find the package Id, update the staff and status of it. /// </summary> /// <param name="packageId">ID of the package</param> /// <param name="staffId">ID of the staff</param> /// <param name="status">The new package status</param> public static PackageStatus AlterPackage(int packageId, string staffId, StatusEnum status) { using (var context = new Entities()) { try { var staffCentreQuery = from s in context.AspNetUsers where s.Id == staffId select s; int centreId = (int)staffCentreQuery.FirstOrDefault().CentreId; var packageStatusQuery = from p in context.PackageStatus where p.PackageID == packageId select p; PackageStatus currentPackageStatus = packageStatusQuery.First(); currentPackageStatus.StaffID = staffId; currentPackageStatus.DestinationCentreID = centreId; currentPackageStatus.Status = (int)status; context.SaveChanges(); return currentPackageStatus; } catch (NullReferenceException) { return null; } } }
public static List<Package> UpdatePackageStatusLost(string staffid, int medicationId) { List<PackageStatus> packages = GetPackageStatusInStockByDistributionCentreAndType(staffid, medicationId); List<Package> lostPackages = new List<Package>(); foreach (PackageStatus ps in packages) { if (!packagesInStock.Exists(x => x.PackageId == ps.PackageID)) { lostPackages.Add(PackageLogic.GetPackageByBarcode((int)ps.PackageID)); using (var context = new Entities()) { var packageStatusQuery = from p in context.PackageStatus where p.PackageStatusID == ps.PackageStatusID select p; packageStatusQuery.SingleOrDefault().Status = (int)StatusEnum.Lost; context.SaveChanges(); } } } packagesInStock = new List<Package>(); return lostPackages; }
public static void SendPackage(int source, int destination, string staffId, int packageId) { using (var context = new Entities()) { var query = from p in context.PackageStatus where p.PackageID == packageId select p; var staffCentreQuery = from s in context.AspNetUsers where s.Id == staffId select s; int centreId = (int)staffCentreQuery.First().CentreId; PackageStatus currentPackageStatus = query.First(); currentPackageStatus.StaffID = staffId; currentPackageStatus.SourceCentreID = centreId; currentPackageStatus.DestinationCentreID = destination; currentPackageStatus.Status = (int)StatusEnum.InTransit; context.SaveChanges(); } }
public static void RegisterArrival(int packageId, int centreId, string staffId) { PackageStatus p = new PackageStatus(); p.PackageID = packageId; p.DestinationCentreID = centreId; p.StaffID = staffId; p.Status = (int)StatusEnum.InStock; using (var context = new Entities()) { context.PackageStatus.Add(p); context.SaveChanges(); } }
/// <summary> /// Registers the package to the system and returns the barcode /// </summary> /// <param name="expiryDate">Expiry date of the package</param> /// <param name="medicationId">The medication ID</param> /// <returns>Barcode</returns> public static int RegisterPackage(DateTime expiryDate, int medicationId) { Package p = new Package(); p.ExpiryDate = expiryDate; p.PackageStandardTypeId = medicationId; int result = -1; if (ValidateInput(expiryDate) == Result.Ok) { using (var context = new Entities()) { context.Packages.Add(p); context.SaveChanges(); return p.PackageId; } } return result; }