예제 #1
0
 public async Task DeleteJobsFromRota(RotaItemDto rotaItem)
 {
     if (string.IsNullOrEmpty(rotaItem.Name) || string.IsNullOrEmpty(rotaItem.Role))
     {
         throw new Exception("Could not delete rota item as name or role is null or empty.");
     }
     await _rotaRepo.DeleteRotaItemFromRota(rotaItem);
 }
예제 #2
0
 public async Task DeleteRotaItemFromRota(RotaItemDto rotaItem)
 {
     try
     {
         var id = (await GetRotaItemForPersonAndDateAndRole(rotaItem.Name, rotaItem.Role, rotaItem.Type, rotaItem.DateTime)).Id;
         await DeleteRow(id);
     }
     catch (Exception e)
     {
         throw new Exception("Rota not removed", e);
     }
 }
예제 #3
0
        public async Task AddRotaJobs(RotaItemDto rotaItem)
        {
            if (await _rotaRepo.IsPersonAndDateAndRoleInTable(rotaItem))
            {
                throw new Exception("Already Added");
            }

            if (string.IsNullOrEmpty(rotaItem.Name) || string.IsNullOrEmpty(rotaItem.Role))
            {
                throw new Exception("Could not add rota item as name or role is null or empty.");
            }

            await _rotaRepo.AddRotaItem(rotaItem);
        }
예제 #4
0
 public async Task AddRotaItem(RotaItemDto rotaItem)
 {
     try
     {
         rotaItem.PartitionKey = rotaItem.Id;
         rotaItem.RowKey       = rotaItem.Id;
         var insertOperation = TableOperation.InsertOrReplace(rotaItem);
         await _table.ExecuteAsync(insertOperation);
     }
     catch (Exception e)
     {
         throw new Exception("Rota not added", e);
     }
 }
예제 #5
0
        public async Task <IActionResult> DeleteFromRotaBand(string dateTime, string name, string role)
        {
            var date = DateTime.Parse(dateTime);
            var rota = new RotaItemDto()
            {
                Type     = RotaType.Band.ToString(),
                DateTime = date,
                Name     = name,
                Role     = role
            };

            await _rotaService.DeleteJobsFromRota(rota);

            TempData["Message"] = $"Removed {name} from job: {role}, on {date.ToShortDateString()}";
            return(await LoadBandRotaView());
        }
예제 #6
0
        public async Task <IActionResult> AddProjectionRota(string dateTime, string name, List <string> roles)
        {
            if (!roles.Any())
            {
                throw new Exception("No roles added to projection role.");
            }
            var date = DateTime.Parse(dateTime);

            foreach (var role in roles)
            {
                try
                {
                    var rota = new RotaItemDto()
                    {
                        Type     = RotaType.Projection.ToString(),
                        DateTime = date,
                        Name     = name.TrimEnd(),
                        Role     = role,
                        Id       = Guid.NewGuid().ToString()
                    };
                    await _rotaService.AddRotaJobs(rota);
                }
                catch (Exception e)
                {
                    if (e.Message == "Already Added")
                    {
                        TempData["Message"] = $"{name} already on rota for {role} on {date.ToShortDateString()}";
                        return(await LoadProjectionRotaView());
                    }
                    else
                    {
                        throw new Exception("In AddProjectionRota", e);
                    }
                }
            }
            TempData["Message"] = $"{name} added to rota on {date.ToShortDateString()}";
            return(await LoadProjectionRotaView());
        }
예제 #7
0
 public async Task <bool> IsPersonAndDateAndRoleInTable(RotaItemDto rotaItem) =>
 await GetRotaItemForPersonAndDateAndRole(rotaItem.Name, rotaItem.Role, rotaItem.Type, rotaItem.DateTime) == null ? false : true;