Exemple #1
0
        private void FillPackage(WorkPackage package, BarcoContext context)
        {
            var members = context.BarcoMembers.Where(m => m.RotaStatus == RotaStatus.Active).ToList();

            package = context.WorkPackages
                      .Where(p => p.Id == package.Id)
                      .Include(p => p.Jobs)
                      .ThenInclude(j => j.Shifts)
                      .Single();
            var result = WorkPackageFactory.FillWorkPackage(package, members, false);

            while (result.UnfilledJobs > 0)
            {
                result = WorkPackageFactory.FillWorkPackage(package, members, true);
            }

            //notified concerned members

            var shiftsByMember = package.Jobs.SelectMany(j => j.Shifts).GroupBy(s => s.BarcoMember);

            foreach (var group in shiftsByMember)
            {
                foreach (var item in group.OrderBy(s => s.BarcoJob.StartDateTime))
                {
                    //
                }
                Notify(group.Key, $"Your shifts for package {package.Name}", "");
            }
        }
Exemple #2
0
        private void NotifyMembersOfNewPackage(WorkPackage package, BarcoContext context)
        {
            var members = context.BarcoMembers.Where(m => m.RotaStatus == RotaStatus.Active).ToList();

            foreach (var member in members)
            {
                Notify(member, "New Shifts Released", "TODO");
            }
        }
Exemple #3
0
 private void PushPackage(WorkPackage package, BarcoContext context)
 {
     if (package.Status == WorkPackageStatus.Planned)
     {
         NotifyMembersOfNewPackage(package, context);
         package.Status = WorkPackageStatus.Notified;
         Notify(package.Manager, $"Package {package.Name} was notified", "TODO");
     }
     if (package.Status != WorkPackageStatus.Filled && DateTime.Now.Date > package.StartDate - TimeSpan.FromDays(3))
     {
         FillPackage(package, context);
         package.Status = WorkPackageStatus.Filled;
         Notify(package.Manager, $"Package {package.Name} was filled", "TODO");
     }
 }
Exemple #4
0
 public HomeController(BarcoContext context)
 {
     _context = context;
 }
Exemple #5
0
 public JobsController(BarcoContext context)
 {
     _context = context;
 }
Exemple #6
0
 public BarcoMembersController(BarcoContext context)
 {
     _context = context;
 }
 public AccountController(BarcoContext context)
 {
     _context = context;
 }
Exemple #8
0
 public WorkPackagesController(BarcoContext context)
 {
     _context = context;
 }
Exemple #9
0
 public ShiftsController(BarcoContext context)
 {
     _context = context;
 }