public async Task <bool> UpdateResolutionAsync(Resolution resolution) { using (var db = new BkDbContext()) { var existingResolution = await db.Resolutions.FirstOrDefaultAsync(p => p.Id == resolution.Id); if (existingResolution != null) { if (existingResolution.Decision != null && existingResolution.DateTimeDesktopUpdate.Date != DateTime.Now.Date) { throw new PublicException("Время редактирования резолюции истекло"); } existingResolution.DateResolution = resolution.DateResolution; existingResolution.DateTimeMobileUpdate = resolution.DateTimeMobileUpdate; existingResolution.Decision = resolution.Decision; existingResolution.ImageData = resolution.ImageData; existingResolution.ImageName = resolution.ImageName; existingResolution.MimeType = resolution.MimeType; existingResolution.Note = resolution.Note; existingResolution.PurposeOfPaymentComment = resolution.PurposeOfPaymentComment; await db.SaveChangesAsync(); return(true); } throw new PublicException("Резолюция была удалена"); } }
public async Task <int> MoveToArchiveAsync(int taskId) { using (var db = new BkDbContext()) { var task = db.Tasks.FirstOrDefault(p => p.Id == taskId && !p.IsArchive); if (task != null) { var resolutions = await db.Resolutions.Where(p => p.TaskId == taskId).ToListAsync(); var status = GetStatus(resolutions.Select(p => p.Decision)); if (status == TaskType.Green || status == TaskType.Red || status == TaskType.Yellow) { task.IsArchive = true; return(await db.SaveChangesAsync()); } throw new PublicException("Нельзя перенести в архив задание, по которому не все назначенные агенты вынесли резолюции"); } } return(0); }
public async Task <int> CreateTaskAsync(BkTask model) { using (var db = new BkDbContext()) { var task = db.Tasks.Add(model); await db.SaveChangesAsync(); return(task.Id); } }
public async Task <int> CreateResolutionAsync(Resolution model) { using (var db = new BkDbContext()) { var resolution = db.Resolutions.Add(model); await db.SaveChangesAsync(); return(resolution.Id); } }
public async Task <string> RemoveAgentAync(int agentId) { using (var db = new BkDbContext()) { var existingAgent = await db.Agents.FirstOrDefaultAsync(p => p.Id == agentId); if (existingAgent != null) { db.Agents.Remove(existingAgent); await db.SaveChangesAsync(); } return(existingAgent.Code); } }
private async Task <bool> UpdateAgent(int agentId, Action <Agent> updateFunc) { using (var db = new BkDbContext()) { var existingAgent = await db.Agents.FirstOrDefaultAsync(p => p.Id == agentId); if (existingAgent == null) { throw new PublicException($"Агент не найден"); } updateFunc(existingAgent); return((await db.SaveChangesAsync()) > 0); } }
public async Task <int> RemoveByAgentIdAsync(int agentId) { using (var db = new BkDbContext()) { var resolutions = await db.Resolutions.Where(p => p.AgentId == agentId).ToListAsync(); if (resolutions.Any()) { db.Resolutions.RemoveRange(resolutions); await db.SaveChangesAsync(); return(resolutions.Count); } return(0); } }
public async Task <int> CreateAgentAync(string code, string password) { using (var db = new BkDbContext()) { var existingAgent = await db.Agents.FirstOrDefaultAsync(p => p.Code == code); if (existingAgent != null) { throw new PublicException($"Агент c таким логином уже существует"); } var agent = db.Agents.Add(new Agent { Code = code, Password = password }); await db.SaveChangesAsync(); return(agent.Id); } }
public async Task <int> RemoveTaskAsync(int taskId) { using (var db = new BkDbContext()) { var task = await db.Tasks.FirstOrDefaultAsync(p => p.Id == taskId); if (task != null) { var resolutions = await db.Resolutions.Where(p => p.TaskId == taskId).ToListAsync(); if (resolutions.Any()) { db.Resolutions.RemoveRange(resolutions); } db.Tasks.Remove(task); return(await db.SaveChangesAsync()); } } return(0); }