public override GNSettingsTemplateConfig EditOnSubmit(GNSettingsTemplateConfig config)
        {
            bool auditResult = audit.LogEvent(UserContact, UserContact.Id, this.ENTITY, this.Request.UserHostAddress, EVENT_UPDATE + " " + config.Id);

            int    GNSettingsTemplateId       = int.Parse(Request["GNSettingsTemplatesList"]);
            string strGNSettingsTemplateField = Request["GNSettingsTemplateFieldsList"].ToString().Trim();
            string Value = Request["Value"].ToString().Trim();

            GNSettingsTemplate      settingsTemplate        = db.GNSettingsTemplates.Where(a => a.Id == GNSettingsTemplateId).FirstOrDefault();
            GNSettingsTemplateField GNSettingsTemplateField = db.GNSettingsTemplateFields.Where(a => a.Id.Equals(strGNSettingsTemplateField)).FirstOrDefault();

            GNSettingsTemplateConfig dbConfig = db.GNSettingsTemplateConfigs.Find(config.Id);

            dbConfig.Value = Value;
            dbConfig.GNSettingsTemplateField = GNSettingsTemplateField;
            dbConfig.GNSettingsTemplate      = settingsTemplate;

            db.SaveChanges();

            return(dbConfig);
        }
        public override GNAnalysisRequest DetailsOnLoad(GNAnalysisRequest analysisRequest)
        {
            EvalActionPrivileges(analysisRequest);

            GNCloudStorageService st = new GNCloudStorageService();

            //  bool res = ((AnalysisRequestService)entityService).tempPersistStatus(analysisRequest);


            auditResult = audit.LogEvent(UserContact, analysisRequest.Id, this.ENTITY, this.Request.UserHostAddress, EVENT_LOAD_DETAILS_UI);

            //In case during the creation of result files all where left as type=6, review and update to the corredct types.
            try
            {
                if (analysisRequest.AnalysisResult != null && analysisRequest.AnalysisResult.ResultFiles != null)
                {
                    if (analysisRequest.AnalysisResult.ResultFiles.Where(a => a.GNCloudFileCategoryId == 6).Count() > 0)
                    {
                        ((AnalysisRequestService)entityService).UpdateFileExtensions(analysisRequest.AnalysisResult);
                    }
                }
            }
            catch (Exception e)
            {
            }

            //Breadcrumbs Info
            ViewBag.CurrentAnalysisRequest = analysisRequest;
            GNProject Project = db.GNProjects.Where(a => a.Id.Equals(analysisRequest.GNProjectId)).FirstOrDefault();

            ViewBag.CurrentProject = Project;
            Guid   TeamId = Project.Teams.FirstOrDefault().Id;
            GNTeam Team   = db.GNTeams.Where(a => a.Id.Equals(TeamId)).FirstOrDefault();

            ViewBag.CurrentTeam = Team;

            ViewBag.DateVCFSentToCartagenia = "NO";
            try
            {
                string           stsCartagenia    = "CARTAGENIA";
                GNAnalysisStatus statusCartagenia = db.GNAnalysisStatus.Where(a => a.GNAnalysisRequestId == analysisRequest.Id && a.Status == stsCartagenia).FirstOrDefault();
                if (statusCartagenia != null)
                {
                    ViewBag.DateVCFSentToCartagenia = TimeZoneInfo.ConvertTime((DateTime)statusCartagenia.CreateDateTime, analysisRequest.Project.Teams.FirstOrDefault().Organization.OrgTimeZoneInfo).ToString();
                }
            }
            catch (Exception notFound)
            {
                ViewBag.DateVCFSentToCartagenia = "NO";
            }


            GNSettingsTemplate Template = db.GNOrganizations.Where(a => a.Id.Equals(Team.OrganizationId)).FirstOrDefault().GNSettingsTemplate;

            ViewBag.TemplateConfigTertiaryFrequency        = (Double.Parse(Template.GNSettingsTemplateConfigs.Where(a => a.GNSettingsTemplateField.Id.Equals("TERTIARY_FREQUENCY")).FirstOrDefault().Value) * 100);
            ViewBag.TemplateConfigTertiarySplicingTreshold = Template.GNSettingsTemplateConfigs.Where(a => a.GNSettingsTemplateField.Id.Equals("TERTIARY_SPLICING_THRESHOLD")).FirstOrDefault().Value;


            //2016.02.04 if the last status was error due to a corrupted file, attach the name of the file to the short status
            ViewBag.CorruptFilenameFound = "NA";
            if (analysisRequest.CurrentStatusShort.Equals("ERROR"))
            {
                string lastStatusReported = analysisRequest.AnalysisStatus.LastOrDefault().Message;
                if (lastStatusReported.Contains("corrupt file"))
                {
                    string corruptFileName = lastStatusReported.Substring(lastStatusReported.LastIndexOf('/') + 1);
                    ViewBag.CorruptFilenameFound = analysisRequest.CurrentStatusShort + ": corrupt file found " + corruptFileName;
                }
            }


            if (Request["sampleId"] != null)
            {
                Guid     sampleId = Guid.Parse(Request["sampleId"]);
                GNSample Sample   = db.GNSamples.Where(a => a.Id.Equals(sampleId)).FirstOrDefault();
                ViewBag.CurrentSample = Sample;
            }

            return(base.DetailsOnLoad(analysisRequest));
        }