public BlockModelApproveViewModel GetApproval(Guid id) { using (new TransactionScope(TransactionScopeOption.Suppress)) { var d = new NKDC(_users.ApplicationConnectionString, null); var m = new BlockModelApproveViewModel(); m.BlockModelID = id; m.BlockModelAlias = (from a in d.BlockModels.Where(a => a.BlockModelID == id && a.Version == 0).DefaultIfEmpty() select a.Alias).FirstOrDefault(); var ps = (from md in d.BlockModelMetadatas.Where(md => md.BlockModelID == id && md.IsColumnData == false && md.ParameterID != _privateService.NKD_GUID_LOG) join p in d.Parameters on md.ParameterID equals p.ParameterID select new { md.BlockModelMetadataID, p.ParameterName, md.BlockModelMetadataText }).OrderBy(x => x.ParameterName); m.Parameters = new Dictionary <Guid, Tuple <string, string> >(); foreach (var x in ps) { m.Parameters.Add(x.BlockModelMetadataID, new Tuple <string, string>(x.ParameterName, x.BlockModelMetadataText)); } var o = (from a in d.BlockModelMetadatas.Where(a => a.BlockModelMetadataText != null && a.BlockModelID == id && a.ParameterID == _privateService.NKD_GUID_LOG && a.Version == 0) orderby a.VersionUpdated descending select a.BlockModelMetadataText); m.Updates = new List <Occurrence>(); foreach (var x in o) { m.Updates.Add(x.Deserialize <Occurrence>()); } m.Updates = m.Updates.OrderByDescending(x => x.Occurred).ToList(); return(m); } }
public ActionResult AuthoriseModel(BlockModelApproveViewModel m, string submit) { if (ModelState.IsValid) { try { if (!Services.Authorizer.Authorize(Permissions.ManageProjects, T("Couldn't update model."))) { return(new HttpUnauthorizedResult()); } if (submit == "Approve") { if (ModelState.IsValid) { var note = string.Format("Model [Name: {0} ID: ({1})] was approved by ({2}).", m.BlockModelAlias, m.BlockModelID, Services.WorkContext.CurrentUser.UserName); BlockModelService.ApproveModel(m.BlockModelID.Value, getCurrentUserID(), note); Logger.Information(note); } } else if (submit == "Notify") { var error = string.Format("Model [Name: {0} ID: ({1})] was not approved by ({2}).", m.BlockModelAlias, m.BlockModelID, Services.WorkContext.CurrentUser.UserName); BlockModelService.DenyModel(m.BlockModelID.Value, getCurrentUserID(), error); Logger.Information(error); } return(RedirectToAction("ModelsToAuthoriseList")); } catch (Exception e) { ViewData["EditError"] = e.Message; } } else { ViewData["EditError"] = "Please, correct all errors."; } return(RedirectToAction("AuthoriseModel", new { id = m.BlockModelID })); }