Beispiel #1
0
 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();
     }
 }
Beispiel #6
0
        /// <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;
        }