/// <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)));
 }
Beispiel #2
0
 /// <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());
        }
Beispiel #4
0
        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);
        }
Beispiel #5
0
        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();
            }
        }
Beispiel #6
0
        /// <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();
        }
Beispiel #7
0
        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));
 }