public ActionResult CompareModelResultPartial(BlockModelCompareViewModel m)
        {
            IReport r = BlockModelService.CompareModels(m);

            return(PartialView(new BlockModelCompareViewModel {
                Model1 = m.Model1,
                Model1Name = m.Model1Name,
                Model2 = m.Model2,
                Model2Name = m.Model2Name,
                DomainsModel1 = m.DomainsModel1,
                DomainsModel2 = m.DomainsModel2,
                GradeTonnageFieldID = m.GradeTonnageFieldID,
                GradeTonnageFieldName = m.GradeTonnageFieldName,
                GradeTonnageIncrement = m.GradeTonnageIncrement,
                ParametersIntersectionBothModels = m.ParametersIntersectionBothModels,
                ParametersModel1 = m.ParametersModel1,
                ParametersModel2 = m.ParametersModel2,
                ParametersView = r.ParametersView,
                Report = r.Report,
                ReportID = r.ReportID,
                ReportName = r.ReportName,
                SerializedChild = m.SerializedChild,
                SelectedDomainsModel1 = m.SelectedDomainsModel1,
                SelectedDomainsModel2 = m.SelectedDomainsModel2,
                SliceFieldID = m.SliceFieldID,
                SliceFilterFieldID = m.SliceFilterFieldID,
                SliceWidthX = m.SliceWidthX,
                SliceWidthY = m.SliceWidthY,
                SliceWidthZ = m.SliceWidthZ,
                FilterString = m.FilterString,
                ReportExecutedByUserName = Services.WorkContext.CurrentUser.UserName
            }));
        }
        public ActionResult ModelParametersEdit(BlockModelParameterViewModel m)
        {
            if (!ModelState.IsValid)
            {
                return(ModelParametersEdit(string.Format("{0}", m.BlockModelMetadataID)));
            }


            try
            {
                if (!Services.Authorizer.Authorize(Permissions.ManageProjects, T("Couldn't update parameter.")))
                {
                    return(new HttpUnauthorizedResult());
                }


                //Validate
                if (!m.UnitID.HasValue)
                {
                    ModelState.AddModelError("UnitID", T("Unit is required.").ToString());
                }

                if (ModelState.IsValid)
                {
                    BlockModelService.UpdateModelParameter(m);
                    return(RedirectToAction("ModelParameters"));
                }
            }
            catch (Exception e)
            {
                ViewData["EditError"] = e.Message;
            }
            return(View(m));
        }
        public ActionResult UploadModelResult(BlockModelUploadViewModel m)
        {
            string ss = BlockModelService.GetBlockModelInfo(m.Model1);

            ss     = ss + ".MMM";
            m.Test = ss;
            return(View(m));
        }
        public ActionResult AppendToModelProcessStart(BlockModelAppendViewModel m)
        {
            // get the currently mapped model columns
            List <string> columnNames = BlockModelService.GetImportFileColumnsAsList(m.BlockModelID, m.FileName, m.BlockModelAlias);
            SelectList    sl          = new SelectList(columnNames);

            // get the next available column in the database to write update to, requires a search in the meta data for column names
            m.FileColumnNames = sl;
            return(View(m));
        }
        public ActionResult AppendToModel(string id)
        {
            if (string.IsNullOrEmpty(id))
            {
                throw new NotImplementedException();
            }
            var guid = new Guid(id);

            return(View(BlockModelService.GetBlockModelToAppend(guid)));
        }
        public ActionResult UploadModel()
        {
            // this is called when the view is cerated
            var model = new BlockModelUploadViewModel {
                Models      = BlockModelService.GetModelList(),
                ProjectList = ProjectService.GetProjectList()
            };

            return(View(model));
        }
        public ActionResult AppendToModelProcessGo(BlockModelAppendViewModel m)
        {
            // Call into the block model library to append the given column using the column map provided.
            // this will attempt to match the BlockModelID of target model, and XC, YC and ZC  coordinates of every record and insert the value
            List <string> columnNames      = BlockModelService.GetImportFileColumnsAsList(m.BlockModelID, m.FileName, m.BlockModelAlias);
            string        columnToAdd      = columnNames[3];
            int           columnIndexToAdd = 3;

            BlockModelService.AppendModelAsync(m.BlockModelID, m.FileName, m.BlockModelAlias, columnToAdd, columnIndexToAdd, getCurrentUserID(), 60);
            return(View(m));
        }
        public ActionResult ImportModel()
        {
            var model = new BlockModelViewModel
            {
                FileNames       = BlockModelService.GetFileNameList(),
                FormatFileNames = BlockModelService.GetFormatFileNameList(),
                Projects        = ProjectService.GetProjectListCurrent()
            };

            model.Stages = model.Projects.Any() ? ProjectService.GetStagesList(new Guid(model.Projects.First().Value)) : new SelectList(new SelectListItem[] { });
            return(View("ImportModel", model));
        }
        public ActionResult EditModel()
        {
            var model = new BlockModelViewModel
            {
                FileNames       = BlockModelService.GetFileNameList(),
                FormatFileNames = BlockModelService.GetFormatFileNameList(),
                Projects        = ProjectService.GetProjectList()
            };

            model.Stages = ProjectService.GetStagesList(new Guid(model.Projects.First().Value));
            return(View(model));
        }
        public ActionResult DeleteModel(string id)
        {
            if (!Services.Authorizer.Authorize(Permissions.ManageProjects, T("Couldn't update the model.")))
            {
                return(new HttpUnauthorizedResult());
            }
            if (string.IsNullOrEmpty(id))
            {
                throw new NotImplementedException();
            }
            var guid = new Guid(id);

            BlockModelService.DeleteModel(guid, getCurrentUserID());
            return(RedirectToAction("ModelList"));
        }
        public ActionResult GetModelIntersectionParameters(string modelID1, string modelID2)
        {
            var j = Json(
                ((new SelectListItem[] { new SelectListItem {
                                             Text = "", Value = ""
                                         } })
                 .Union((from o in BlockModelService.GetModelParameterList(new Guid(modelID1))
                         join m in BlockModelService.GetModelParameterList(new Guid(modelID2))
                         on o.Text equals m.Text where o.Text != "" && o.Text != null
                         select o))
                 .OrderBy(f => f.Text))
                , JsonRequestBehavior.AllowGet);

            return(j);
        }
        public ActionResult CompareModel()
        {
            var model = new BlockModelCompareViewModel
            {
                Models = BlockModelService.GetModelListCurrent(),
                Report = AllReports.GetReport(AllReports.ReportType.CompareModel)
            };

            model.ParametersModel1 = model.Models.Any() ? BlockModelService.GetModelParameterList(new Guid(model.Models.First().Value)) : new SelectList(new SelectListItem[] { });
            model.DomainsModel1    = model.Models.Any() ? BlockModelService.GetModelDomainsList(new Guid(model.Models.First().Value)) : new SelectList(new SelectListItem[] { });
            model.DomainsModel2    = model.DomainsModel1;
            model.ParametersModel2 = model.ParametersModel1;
            model.ParametersIntersectionBothModels = model.ParametersModel1;
            return(View("CompareModel", model));
        }
        public ActionResult CompareModelResult(BlockModelCompareViewModel m)
        {
            if (!ModelState.IsValid)
            {
                return(CompareModel());
            }

            m.ReportID = (uint)AllReports.ReportType.CompareModel;
            m.SelectedDomainsModel1Compact = m.SelectedDomainsModel1 != null?string.Join(";", m.SelectedDomainsModel1.ToArray()) : null;

            m.SelectedDomainsModel2Compact = m.SelectedDomainsModel2 != null?string.Join(";", m.SelectedDomainsModel2.ToArray()) : null;

            m.Model1Name = BlockModelService.GetModelAlias(m.Model1);
            m.Model2Name = BlockModelService.GetModelAlias(m.Model2);
            m.ReportExecutedByUserName = Services.WorkContext.CurrentUser.UserName;
            return(View(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 }));
        }
        public ActionResult ImportModelProcessStart(BlockModelViewModel m)
        {
            if (!ModelState.IsValid)
            {
                return(ImportModel());
            }

            // TODO do some processing here
            string bmFile = m.FileName;

            string formatSpecFile = m.FormatFileName;// "gf_compact_bm_format.xml";
            double xOrigin        = m.XOrigin;
            double yOrigin        = m.YOrigin;
            double zOrigin        = m.ZOrigin;
            string projID         = m.Project;
            string alias          = m.Alias;
            string notes          = m.Notes;
            string stage          = m.Stage;
            Guid   gg             = PrivateService.NKD_BM_STAGE;

            BlockModelService.ProcessModelAsync(bmFile, formatSpecFile, projID, alias, this.getCurrentUserID(), notes, stage, gg, 60);
            return(View(m));
        }
 public ActionResult GetModelParameters(string modelID)
 {
     return(Json(BlockModelService.GetModelParameterList(new Guid(modelID))
                 , JsonRequestBehavior.AllowGet));
 }