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); }
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); } }
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); }
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); } }
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()); }
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()); }
public async Task <bool> IsPersonAndDateAndRoleInTable(RotaItemDto rotaItem) => await GetRotaItemForPersonAndDateAndRole(rotaItem.Name, rotaItem.Role, rotaItem.Type, rotaItem.DateTime) == null ? false : true;