Ejemplo n.º 1
0
        /// <summary>
        /// Метод обработки запроса на добавление фирмы.
        /// </summary>
        /// <param name="newFirm">Объект новой фирмы (из тела запроса).</param>
        /// <remarks>Пример запроса: POST api/v1/firms
        /// (в теле запроса - JSON-объект фирмы).</remarks>
        public void Post([FromBody] JsonFirm newFirm)
        {
            this.AuthorizeGlobalAdmin(
                "Только глобальный администратор может добавлять фирмы.");

            this.firmsRepo.Add(newFirm);
            this.firmsRepo.SaveChanges();
        }
Ejemplo n.º 2
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();
        }