/// <summary> /// Может ли пользователь совершать все операции с фирмой. /// </summary> /// <param name="user">Информация о пользователе.</param> /// <param name="firm">Фирма.</param> /// <returns>True - права есть, false - нет.</returns> public bool CanUserEditFirm( UserInfo user, IFirm firm) { return(user != null && firm != null && (user.IsGlobalAdmin || this.IsUserFirmAdmin(user, firm))); }
/// <summary> /// Создать обертку фирмы на основе любого интерфейса фирмы. /// </summary> /// <param name="iFirm">Интерфейс фирмы.</param> public FirmWrap(IFirm iFirm) { this.firmEF = new Firm() { FirmId = iFirm.FirmId, Name = iFirm.Name, Address = iFirm.Address, Phone = iFirm.Phone }; }
public ActionResult Index(Firm firmInput) { if (ModelState.IsValid) { IFirm firmResult = service.Find(firmInput.ICO); return(View(firmResult)); } return(View()); }
public static bool CheckIfEmpty(IFirm firm, string message) { int milliseconds = 4000; Console.WriteLine("proccessing"); Thread.Sleep(milliseconds); if (firm.Departments.Count == 0) { Console.WriteLine(message); return(false); } return(true); }
public static void seedDeps(IFirm firm) { string path = "departments.txt"; if (File.Exists(path)) { string line = null; StreamReader reader = new StreamReader("departments.txt"); while ((line = reader.ReadLine()) != null) { Department dep = new Department(line.Split(",")[0], line.Split(",")[1]); firm.AddDepartment(dep); } reader.Close(); } }
/// <summary> /// Метод обработки запроса на обновление фирмы. /// </summary> /// <param name="id">Id обновляемой фирмы.</param> /// <param name="updatedFirm">Объект обновляемой фирмы /// (из тела запроса).</param> /// <remarks>Пример запроса: PUT api/v1/firms/5 /// (в теле запроса - JSON-объект фирмы).</remarks> public void Put(int id, [FromBody] JsonFirm updatedFirm) { IFirm existingFirm = this.firmsRepo.Find(updatedFirm.FirmId); if (updatedFirm.Name != existingFirm.Name) { this.AuthorizeGlobalAdmin( "Только глобальный администратор может изменять название фирмы."); } else { if (!this.AuthorizationMechanism.CanUserEditFirm( this.CurrentUserInfo, existingFirm)) { this.ThrowUnauthorizedResponseException( "Данный пользователь не может изменять данные этой фирмы."); } } this.firmsRepo.Update(updatedFirm); this.firmsRepo.SaveChanges(); }
public static void seedEmployees(IFirm firm) { string path = "employees.txt"; if (File.Exists(path) && firm.Departments.Count > 0) { string line = null; StreamReader reader = new StreamReader("employees.txt"); while ((line = reader.ReadLine()) != null) { Employee dep = new Employee(line.Split(",")[0], int.Parse(line.Split(",")[1]), int.Parse(line.Split(",")[2]), line.Split(",")[3]); dep.DepartmentName = line.Split(",")[4]; string[] splitted = line.Split(","); for (int i = 5; i < splitted.Length; i++) { dep.AddProject(splitted[i]); } firm.Departments.FirstOrDefault(x => x.Name == dep.DepartmentName).AddEmployee(dep); } reader.Close(); } }
/// <summary> /// Пользователь является директором фирмы. /// </summary> /// <param name="user">Информация о пользователе.</param> /// <param name="firm">Фирма.</param> /// <returns>True - пользователь - директор фирмы, false - нет.</returns> private bool IsUserFirmAdmin(UserInfo user, IFirm firm) { return(user.FirmId == firm.FirmId); }
/// <summary> /// Может ли пользователь редактировать фотографии фирмы. /// </summary> /// <param name="user">Информация о пользователе.</param> /// <param name="firm">Фирма.</param> /// <returns>True - права есть, false - нет.</returns> public bool UserHasAccessToPhotos( UserInfo user, IFirm firm) { return(this.CanUserEditFirm(user, firm)); }