示例#1
0
        /// <summary>
        /// <inheritdoc />
        /// </summary>
        /// <param name="id"></param>
        /// <param name="model"></param>
        /// <param name="cancellationToken"></param>
        /// <returns></returns>
        public async Task <Responsibility> EditResponsibilityAsync(int id, EditResponsibilityViewModel model,
                                                                   CancellationToken cancellationToken = default(CancellationToken))
        {
            // Find Responsibility from database
            var responsibilities = _unitOfWork.Responsibilities.Search();
            var responsibility   = await responsibilities.FirstOrDefaultAsync(x => x.Id == id, cancellationToken);

            if (responsibility == null)
            {
                throw new HttpException((int)HttpStatusCode.NotFound,
                                        HttpMessages.ResponsibilityNotFound);
            }

            if (!string.IsNullOrWhiteSpace(model.Name))
            {
                // Check name for duplication.
                var name = model.Name.Trim();
                if (await responsibilities.AnyAsync(x => x.Name.Equals(name, StringComparison.InvariantCultureIgnoreCase), cancellationToken))
                {
                    throw new HttpException((int)HttpStatusCode.Conflict, HttpMessages.ResponsibilityAlreadyAvailable);
                }
                responsibility.Name = model.Name;
            }

            responsibility.LastModifiedTime = DateTime.Now.ToOADate();

            //Save changes to database
            await _unitOfWork.CommitAsync();

            return(responsibility);
        }
示例#2
0
        public async Task <IHttpActionResult> Update([FromUri] int id, [FromBody] EditResponsibilityViewModel model)
        {
            if (model == null)
            {
                model = new EditResponsibilityViewModel();
                Validate(model);
            }

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            //find Responsibility from database
            var responsibilities = _unitOfWork.Responsibilities.Search();
            var responsibility   = await responsibilities.FirstOrDefaultAsync(x => x.Id == id);

            if (responsibility == null)
            {
                return(ResponseMessage(Request.CreateErrorResponse(HttpStatusCode.NotFound,
                                                                   HttpMessages.ResponsibilityNotFound)));
            }

            if (!string.IsNullOrEmpty(model.Name))
            {
                responsibility.Name = model.Name;
            }
            responsibility.LastModifiedTime = DateTime.Now.ToOADate();

            //Save changes to database
            await _unitOfWork.CommitAsync();

            return(Ok(responsibility));
        }
        public async Task <IHttpActionResult> Update([FromUri] int id, [FromBody] EditResponsibilityViewModel model)
        {
            if (model == null)
            {
                model = new EditResponsibilityViewModel();
                Validate(model);
            }

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var responsibility = await _responsibilityService.EditResponsibilityAsync(id, model);

            return(Ok(responsibility));
        }
        public async Task <Responsibility> EditResponsibilityAsync(EditResponsibilityViewModel model,
                                                                   CancellationToken cancellationToken = default(CancellationToken))
        {
            //find Responsibility from database
            var responsibility = await _dbContext.Responsibilities.FindAsync(model.Id, cancellationToken);

            if (responsibility == null)
            {
                throw new Exception();
            }

            if (!string.IsNullOrEmpty(model.Name))
            {
                responsibility.Name = model.Name;
            }
            responsibility.LastModifiedTime = DateTime.Now.ToOADate();

            //Save changes to database
            await _dbContext.SaveChangesAsync(cancellationToken);

            return(responsibility);
        }