public async Task <ActionResult <object> > Get() { var correlationId = HttpContext.TraceIdentifier; // информация для логирования var preLog = correlationId + " | " + ClassName + "Controller." + ExtensionProvider.GetCallerMethodName(); // логируем начало выполнения метода Logging.Trace(preLog + " START"); // выполнение метода try { // логируем запрос Logging.Request(preLog + "(Запрос метода.)"); // получаем данные из базы данных var data = await DataProvider.GetAsync(Asd_E_Type.Department, correlationId); // логируем ответ Logging.Response(preLog + "(Ответ метода.)" + JsonConvert.SerializeObject(data, Formatting.Indented).ToTabString()); // возвращаем ответ var code = data == null ? Asd_E_ResponseCode.GetError : Asd_E_ResponseCode.Success; return(new Asd_Response(code, null, data, correlationId)); } catch (Exception ex) { // логируем исключение Logging.Exception(preLog + "(" + ex.Message + ")" + ex.StackTrace.ToTabString()); // возвращаем ответ return(new Asd_Response(Asd_E_ResponseCode.GetException, ex.Message, null, correlationId)); } finally { // логируем окончание выполнения метода Logging.Trace(preLog + " END"); } }
public static async Task <bool> DeleteAsync(Asd_E_Type type, Guid id, string correlationId) { // информация для логирования var preLog = correlationId + " | " + ClassName + "." + type + "." + ExtensionProvider.GetCallerMethodName(); // логируем начало выполнения метода Logging.Trace(preLog + " START"); // выполнение метода try { // логируем запрос Logging.Request(preLog + "(Запрос метода. Исходные данные: Id = " + id + ")"); // создаем объект ответа bool response; // удаляем данные из базы данных await using (var context = new LocalDatabaseContext()) { switch (type) { case Asd_E_Type.Employee: var employee = await context.Employees.FindAsync(id); context.Employees.Remove(employee); response = await context.SaveChangesAsync() > 0; break; case Asd_E_Type.Department: var department = await context.Departments.FindAsync(id); context.Departments.Remove(department); response = await context.SaveChangesAsync() > 0; break; default: response = false; break; } } // логируем ответ Logging.Response(preLog + "(Ответ метода: " + response + ")"); // возвращаем ответ return(response); } catch (Exception ex) { // логируем исключение Logging.Exception(preLog + "(" + ex.Message + ")" + ex.StackTrace.ToTabString()); // возвращаем ответ return(false); } finally { // логируем окончание выполнения метода Logging.Trace(preLog + " END"); } }
public static void Local() { // информация для логирования var preLog = Guid.Empty + " | " + ClassName + "." + ExtensionProvider.GetCallerMethodName(); try { using var context = new LocalDatabaseContext(); // мигрируем базу данных context.Database.Migrate(); } catch (Exception ex) { // логируем исключение Logging.Exception(preLog + "(" + ex.Message + ")" + ex.StackTrace.ToTabString()); } }
public static async Task <bool> FindAsync(Asd_E_Type type, Guid id, string correlationId) { // информация для логирования var preLog = correlationId + " | " + ClassName + "." + type + "." + ExtensionProvider.GetCallerMethodName(); // логируем начало выполнения метода Logging.Trace(preLog + " START"); // выполнение метода try { // логируем запрос Logging.Request(preLog + "(Запрос метода. Исходные данные: Id = " + id + ")"); // создаем объект ответа bool response; // получаем данные из базы данных await using (var context = new LocalDatabaseContext()) { response = type switch { Asd_E_Type.Employee => await context.Employees.FindAsync(id) != null, Asd_E_Type.Department => await context.Departments.FindAsync(id) != null, _ => false }; } // логируем ответ Logging.Response(preLog + "(Ответ метода: " + response + ")"); // возвращаем ответ return(response); } catch (Exception ex) { // логируем исключение Logging.Exception(preLog + "(" + ex.Message + ")" + ex.StackTrace.ToTabString()); // возвращаем ответ return(false); } finally { // логируем окончание выполнения метода Logging.Trace(preLog + " END"); } }
public static async Task <bool> PutAsync <T>(Asd_E_Type type, Guid id, T request, string correlationId) { // информация для логирования var preLog = correlationId + " | " + ClassName + "." + type + "." + ExtensionProvider.GetCallerMethodName(); // логируем начало выполнения метода Logging.Trace(preLog + " START"); // выполнение метода try { // логируем запрос Logging.Request(preLog + "(Запрос метода. Исходные данные: Id = " + id + ")" + JsonConvert.SerializeObject(request, Formatting.Indented).ToTabString()); // создаем объект ответа bool response; // обновляем данные в базе данных await using (var context = new LocalDatabaseContext()) { context.Entry(request).State = EntityState.Modified; response = await context.SaveChangesAsync() > 0; } // логируем ответ Logging.Response(preLog + "(Ответ метода: " + response + ")"); // возвращаем ответ return(response); } catch (Exception ex) { // логируем исключение Logging.Exception(preLog + "(" + ex.Message + ")" + ex.StackTrace.ToTabString()); // возвращаем ответ return(false); } finally { // логируем окончание выполнения метода Logging.Trace(preLog + " END"); } }
public static async Task <object> GetAsync(Asd_E_Type type, string correlationId) { // информация для логирования var preLog = correlationId + " | " + ClassName + "." + type + "." + ExtensionProvider.GetCallerMethodName(); // логируем начало выполнения метода Logging.Trace(preLog + " START"); // выполнение метода try { // логируем запрос Logging.Request(preLog + "(Запрос метода.)"); // создаем объект ответа IEnumerable <object> response; // получаем данные из базы данных await using (var context = new LocalDatabaseContext()) { response = type switch { Asd_E_Type.Employee => await context.Employees .Select(i => new { i.Id, i.Name, Department = new { i.Department.Id, i.Department.Name } }).ToListAsync(), Asd_E_Type.Department => await context.Departments .Include(i => i.Employees) .Select(i => new { i.Id, i.Name, i.Employees.Count, Avg = i.Employees.Sum(j => j.Salary) / i.Employees.Count, Employees = i.Employees .Select(j => new { j.Id, j.Name, j.Salary }) }).ToListAsync(), _ => null }; } // логируем ответ Logging.Response(preLog + "(Ответ метода.)" + JsonConvert.SerializeObject(response, Formatting.Indented).ToTabString()); // возвращаем ответ return(response); } catch (Exception ex) { // логируем исключение Logging.Exception(preLog + "(" + ex.Message + ")" + ex.StackTrace.ToTabString()); // возвращаем ответ return(null); } finally { // логируем окончание выполнения метода Logging.Trace(preLog + " END"); } }
public static async Task <Guid?> PostAsync <T>(Asd_E_Type type, T request, string correlationId) { // информация для логирования var preLog = correlationId + " | " + ClassName + "." + type + "." + ExtensionProvider.GetCallerMethodName(); // логируем начало выполнения метода Logging.Trace(preLog + " START"); // выполнение метода try { // логируем запрос Logging.Request(preLog + "(Запрос метода. Исходные данные.)" + JsonConvert.SerializeObject(request, Formatting.Indented).ToTabString()); // создаем объект ответа Guid response; // добавляем данные в базу данных await using (var context = new LocalDatabaseContext()) { switch (type) { case Asd_E_Type.Employee: var employee = request as Employee; await context.Employees.AddAsync(employee ?? throw new InvalidOperationException()); await context.SaveChangesAsync(); response = await context.Employees.Select(i => i.Id).FirstOrDefaultAsync(i => i == employee.Id); break; case Asd_E_Type.Department: var department = request as Department; await context.Departments.AddAsync(department ?? throw new InvalidOperationException()); await context.SaveChangesAsync(); response = await context.Departments.Select(i => i.Id).FirstOrDefaultAsync(i => i == department.Id); break; default: response = Guid.Empty; break; } } // логируем ответ Logging.Response(preLog + "(Ответ метода: Id = " + response + ")"); // возвращаем ответ return(response); } catch (Exception ex) { // логируем исключение Logging.Exception(preLog + "(" + ex.Message + ")" + ex.StackTrace.ToTabString()); // возвращаем ответ return(null); } finally { // логируем окончание выполнения метода Logging.Trace(preLog + " END"); } }
public static void LocalData() { // информация для логирования var preLog = Guid.Empty + " | " + ClassName + "." + ExtensionProvider.GetCallerMethodName(); try { using var context = new LocalDatabaseContext(); var department1 = new Department { Name = "Shop" }; context.Departments.Add(department1); var department2 = new Department { Name = "Logistics" }; context.Departments.Add(department2); var department3 = new Department { Name = "Orders" }; context.Departments.Add(department3); var department4 = new Department { Name = "Marketing" }; context.Departments.Add(department4); var department5 = new Department { Name = "Warehouse" }; context.Departments.Add(department5); context.SaveChanges(); var employee1 = new Employee { Name = "Harry", Salary = 5000, DepartmentId = department1.Id }; context.Employees.Add(employee1); var employee2 = new Employee { Name = "Oliver", Salary = 4500, DepartmentId = department2.Id }; context.Employees.Add(employee2); var employee3 = new Employee { Name = "Jack", Salary = 7000, DepartmentId = department3.Id }; context.Employees.Add(employee3); var employee4 = new Employee { Name = "Charlie", Salary = 2000, DepartmentId = department4.Id }; context.Employees.Add(employee4); var employee5 = new Employee { Name = "Thomas", Salary = 3500, DepartmentId = department5.Id }; context.Employees.Add(employee5); var employee6 = new Employee { Name = "Jacob", Salary = 1000, DepartmentId = department1.Id }; context.Employees.Add(employee6); var employee7 = new Employee { Name = "Alfie", Salary = 6000, DepartmentId = department2.Id }; context.Employees.Add(employee7); var employee8 = new Employee { Name = "Riley", Salary = 5000, DepartmentId = department3.Id }; context.Employees.Add(employee8); var employee9 = new Employee { Name = "William", Salary = 4500, DepartmentId = department4.Id }; context.Employees.Add(employee9); var employee10 = new Employee { Name = "James", Salary = 7000, DepartmentId = department5.Id }; context.Employees.Add(employee10); var employee11 = new Employee { Name = "Amelia", Salary = 2500, DepartmentId = department1.Id }; context.Employees.Add(employee11); var employee12 = new Employee { Name = "Olivia", Salary = 3000, DepartmentId = department2.Id }; context.Employees.Add(employee12); var employee13 = new Employee { Name = "Jessica", Salary = 5000, DepartmentId = department3.Id }; context.Employees.Add(employee13); var employee14 = new Employee { Name = "Emily", Salary = 4500, DepartmentId = department4.Id }; context.Employees.Add(employee14); var employee15 = new Employee { Name = "Lily", Salary = 7000, DepartmentId = department5.Id }; context.Employees.Add(employee15); var employee16 = new Employee { Name = "Ava", Salary = 5000, DepartmentId = department1.Id }; context.Employees.Add(employee16); var employee17 = new Employee { Name = "Heather", Salary = 5000, DepartmentId = department2.Id }; context.Employees.Add(employee17); var employee18 = new Employee { Name = "Sophie", Salary = 3500, DepartmentId = department3.Id }; context.Employees.Add(employee18); var employee19 = new Employee { Name = "Mia", Salary = 3000, DepartmentId = department4.Id }; context.Employees.Add(employee19); var employee20 = new Employee { Name = "Isabella", Salary = 3500, DepartmentId = department5.Id }; context.Employees.Add(employee20); var employee21 = new Employee { Name = "Jack", Salary = 1000, DepartmentId = department1.Id }; context.Employees.Add(employee21); var employee22 = new Employee { Name = "James", Salary = 1500, DepartmentId = department2.Id }; context.Employees.Add(employee22); var employee23 = new Employee { Name = "Daniel", Salary = 5000, DepartmentId = department3.Id }; context.Employees.Add(employee23); var employee24 = new Employee { Name = "Harry", Salary = 5000, DepartmentId = department4.Id }; context.Employees.Add(employee24); var employee25 = new Employee { Name = "Charlie", Salary = 4500, DepartmentId = department5.Id }; context.Employees.Add(employee25); var employee26 = new Employee { Name = "Ethan", Salary = 7000, DepartmentId = department1.Id }; context.Employees.Add(employee26); var employee27 = new Employee { Name = "Matthew", Salary = 7000, DepartmentId = department2.Id }; context.Employees.Add(employee27); var employee28 = new Employee { Name = "Ryen", Salary = 5000, DepartmentId = department3.Id }; context.Employees.Add(employee28); var employee29 = new Employee { Name = "Riley", Salary = 6500, DepartmentId = department4.Id }; context.Employees.Add(employee29); var employee30 = new Employee { Name = "Noah", Salary = 3500, DepartmentId = department5.Id }; context.Employees.Add(employee30); context.SaveChanges(); } catch (Exception ex) { // логируем исключение Logging.Exception(preLog + "(" + ex.Message + ")" + ex.StackTrace.ToTabString()); } }