Пример #1
0
        public async Task <ActionResult> Edit(
            [Bind(Include = "Id,Name,CreationTime,ChangedTime")] PositionModel position, long?claimKinds)
        {
            if (ModelState.IsValid)
            {
                var dbEntity = await db.Position.FindAsync(position.Id);

                if (dbEntity == null)
                {
                    return(HttpNotFound());
                }

                PositionModel.ApplyToEntity(dbEntity, position);
                db.Entry(dbEntity).State = EntityState.Modified;

                //если передан тип заявки - добавляем его
                if (claimKinds.HasValue)
                {
                    if (!db.PositionClaimKind.Any(x => x.PositionId == position.Id && x.DictClaimKindId == claimKinds))
                    {
                        db.PositionClaimKind.Add(new PositionClaimKind
                        {
                            DictClaimKindId = claimKinds.Value,
                            PositionId      = position.Id
                        });
                    }
                }

                await db.SaveChangesAsync();

                return(RedirectToAction("Edit", new { position.Id }));
            }

            ViewData["ClaimKinds"] =
                db.DictClaimKind
                .Where(x => x.IsVisible)
                .Select(x =>
                        new SelectListItem
            {
                Text  = x.Name,
                Value = x.Id.ToString()
            })
                .OrderBy(x => x.Text)
                .ToList();
            return(View(position));
        }