/// <summary> /// Добавляет в БД объект, наследника от Person. /// </summary> /// <typeparam name="T"> Тип выгружаемого объекта. Должен наследоваться от Person. </typeparam> /// <param name="nameOfPerson"> Имя выгружаемого объекта. </param> /// <param name="passwordOrSecondName"> Пароль или фамилия выгружаемого объекта. </param> /// <param name="context"> Экземпляр контекста, необходимый для работы с БД. </param> /// <returns> Если входные аргументы корректны и операция удалась - возвращает загруженный объект, /// иначе - null. /// </returns> public static Person RegistrationOfPerson <T>(string nameOfPerson, string passwordOrSecondName, UPSContext context) { if (string.IsNullOrWhiteSpace(nameOfPerson) is false && string.IsNullOrWhiteSpace(passwordOrSecondName) is false) { var nameOfPersonType = typeof(T); try { if (nameOfPersonType == typeof(Client)) { if (context.Clients.FirstOrDefault(clint => clint.Name == nameOfPerson) == default) { var newClient = new Client(nameOfPerson, passwordOrSecondName); if (newClient.Name != null && newClient.PasswordOrSecondName != null) { context.Clients.Add(newClient); context.SaveChanges(); return(newClient); } } } else if (nameOfPersonType == typeof(Employee)) { if (context.Employees.FirstOrDefault(clint => clint.Name == nameOfPerson) == default) { var newEmployee = new Employee(nameOfPerson, passwordOrSecondName); if (newEmployee.Name != null && newEmployee.PasswordOrSecondName != null) { context.Employees.Add(newEmployee); context.SaveChanges(); return(newEmployee); } } } else { return(null); } } catch (Exception ex) { Console.WriteLine(ex.Message); return(null); } } return(null); }
/// <summary> /// Приватный метод, необходимый для сохранения (синхронизации) данных об экземпляре Client после операций. /// </summary> /// <param name="inputClient"> Экземпляр Client, данные которого будут синхронизированы с БД. </param> /// <param name="context"> Экземпляр контекста, необходимый для работы с БД. </param> private static void SaveClient(Client inputClient, UPSContext context) { try { var clientFromDb = context.Clients.Find(inputClient.Id); clientFromDb = inputClient; context.SaveChanges(); } catch (Exception ex) { Console.WriteLine("Не удалось сохранить данные после операции!" + ex); Thread.Sleep(5000); } }
/// <summary> /// Добавляет экземпляр Product в БД. /// </summary> /// <param name="context"> Экземпляр контекста, необходимый для сохранения изменений в базе данных. </param> /// <param name="newProduct"> Добавляемый экземпляр Product. </param> /// <param name="productsFromDb"> Данные о экземплярах Product из БД, /// необходимые для защиты от ошибок (добавление уже существующего экземпляра и т.п). /// </param> /// <returns> True - если входные аргументы корректны, операция удалась и этот продукт не содержался в БД, иначе - false. </returns> public static bool AddProducts(UPSContext context, Product newProduct, List <Product> productsFromDb) { if (productsFromDb.Find(prod => prod.Name == newProduct.Name) is null && context != null && productsFromDb != null) { if (string.IsNullOrWhiteSpace(newProduct.Name) is false && newProduct.Cost > 0) { context.Products.Add(newProduct); context.SaveChanges(); return(true); } } return(false); }
/// <summary> /// Приватный метод, необходимый для сохранения (синхронизации) изменений экземпляра Product с ним же в базе данных. /// </summary> /// <param name="product"> Изменяемый экземпляр Product. </param> /// <param name="context"> Экземпляр контекста, необходимый для сохранения изменений в базе данных. </param> /// <returns> True - если входные аргументы корректны и операция удалась, иначе - false. </returns> private static bool SaveProduct(Product product, UPSContext context) { try { var prodFromDb = context.Products.Find(product.Id); prodFromDb.Name = product.Name; prodFromDb.Cost = product.Cost; context.SaveChanges(); if (prodFromDb.Name == product.Name && prodFromDb.Cost == product.Cost) { return(true); } return(false); } catch (Exception ex) { Console.WriteLine(ex); return(false); } }
public User Add(User userToAdd) { context.Users.Add(userToAdd); context.SaveChanges(); return(userToAdd); }
public Guid AddUPS(UPS ups) { context.UPSes.Add(ups); context.SaveChanges(); return(ups.Id); }