public async Task<ActionResult> Edit(DepartmentUpdate.CommandModel commandModel)
        {
            var request = new DepartmentUpdate.Request(SystemPrincipal.Name, commandModel);
            var response = await DomainServices.DispatchAsync<DepartmentUpdate.Response>(request);
            if (!response.HasValidationIssues)
                return RedirectToAction("Index");

            if (response.RowVersion != null)
                commandModel.RowVersion = response.RowVersion;

            var instructors = await _QueryRepository.GetEntitiesAsync<Instructor>(new AsNoTrackingQueryStrategy()); ;
            ViewBag.InstructorID = new SelectList(instructors, "ID", "FullName", commandModel.InstructorID);

            ModelState.AddRange(response.ValidationDetails.AllValidationMessages);
            return View(commandModel);
        }
        // Update department
        #region Update department
        public static DepartmentUpdate.Response Handle(IRepository repository, DepartmentUpdate.Request request)
        {
            var validationDetails = Validator.ValidateRequest(request, repository);

            if (validationDetails.HasValidationIssues)
            {
                return(new DepartmentUpdate.Response(validationDetails));
            }

            var commandModel = request.CommandModel;
            var currentDept  = repository.GetEntity <Department>(
                p => p.DepartmentID == commandModel.DepartmentID,
                new AsNoTrackingQueryStrategy());

            var rowVersion = default(byte[]);
            var container  = currentDept.Modify(request.CommandModel);

            validationDetails = repository.Save(container, dbUpdateEx => OnUpdateFailedFunc(repository, dbUpdateEx, commandModel, ref rowVersion));

            return(new DepartmentUpdate.Response(validationDetails, rowVersion));
        }
示例#3
0
        public async Task <ActionResult> Edit(DepartmentUpdate.CommandModel commandModel)
        {
            var request  = new DepartmentUpdate.Request(SystemPrincipal.Name, commandModel);
            var response = await DomainServices.DispatchAsync <DepartmentUpdate.Response>(request);

            if (!response.HasValidationIssues)
            {
                return(RedirectToAction("Index"));
            }

            if (response.RowVersion != null)
            {
                commandModel.RowVersion = response.RowVersion;
            }

            var instructors = await _QueryRepository.GetEntitiesAsync <Instructor>(new AsNoTrackingQueryStrategy());;

            ViewBag.InstructorID = new SelectList(instructors, "ID", "FullName", commandModel.InstructorID);

            ModelState.AddRange(response.ValidationDetails.AllValidationMessages);
            return(View(commandModel));
        }