/// <summary> /// Save Variable /// </summary> /// <param name="user"></param> /// <returns></returns> public static Variable Save(Variable variable, Guid langID) { using (var context = new TSMContext()) { //Check if variable exists or not if (context.Variables.Where(v => v.ID == variable.ID).Count() > 0) { var variable_lang = context.Variable_Languages.Where(cl => cl.ID == variable.ID).FirstOrDefault(); var variable_choice = context.Choices.Include("Choice_Languages").Where(c => c.VariableID == variable.ID).ToList(); if (variable_lang != null) { context.Variable_Languages.Remove(variable_lang); } if (variable_choice != null) { foreach (var item in variable_choice) { Choice_Language itemChoiceLang = item.Choice_Languages.Where(c => c.LanguageID == langID).FirstOrDefault(); if (itemChoiceLang != null) { context.Choice_Languages.Remove(itemChoiceLang); context.Choices.Remove(item); } } } context.Choices.AddRange(variable.Choices); context.Variable_Languages.AddRange(variable.Variable_Languages); context.Variables.Attach(variable); context.Entry(variable).State = EntityState.Modified; } else { context.Variables.Add(variable); } //Save to DB try { context.SaveChanges(); } catch // (Exception ee) { // ErrorLog.WriteLog("VariableService", "Save", ee, ""); } return(variable); } }
/// <summary> /// Save /// </summary> public Variable Save() { Variable variable = new Variable(); try { if (this.ID == Guid.Empty) { variable = new Variable(); variable.CreatedBy = TSM.Model.TSMContext.CurrentUser.ID; variable.CreatedDate = DateTime.UtcNow; int count = VariableService.VariableCount(); variable.DisplayOrder = count + 1; } else { variable = this.GetVariableFull(this.ID, TSM.Model.TSMContext.CurrentLanguageID); variable.LastModifiedBy = TSM.Model.TSMContext.CurrentUser.ID; variable.LastModifiedDate = DateTime.UtcNow; } //FOR Variable variable.Type = this.Variable_Type; variable.VariableCategory = this.VariableCategory; variable.ShowInAdvancedSearchFilter = this.Is_AdvanceSearchFilter; variable.ShowInDetailPage = this.ShowInDetailPage; variable.ShowInReport = this.ShowInReport; variable.IsSytemDefined = this.IsSystemDefined; variable.FilterHeading = this.FilterHeading; variable.IsActive = this.IsActive; variable.IsMandatory = this.IsMandetory; variable.Variable_Languages.Add(new Variable_Language { ID = this.ID, LanguageID = TSM.Model.TSMContext.CurrentLanguageID, Name = this.Variable_Name, DisplayName = this.Variable_DisplayName, Description = this.Variable_Description }); List <Choice> clist = new List <Choice>(); if (this.ManageChoiceForString != null) { if (this.ManageChoiceForString.Count > 0) { Choice_Language clang = new Choice_Language(); Choice choice = new Choice(); Char[] split = new Char[1]; split[0] = '/'; for (int i = 0; i < this.ManageChoiceForString.Count; i++) { string[] str = this.ManageChoiceForString[i].Split(split, StringSplitOptions.RemoveEmptyEntries); choice = new Choice(); clang = new Choice_Language(); choice.Choice_Languages = new List <Choice_Language>(); if (str[0] != "00000000-0000-0000-0000-000000000000") { choice.ID = new Guid(str[0]); clang.ID = new Guid(str[0]); } choice.VariableID = variable.ID; choice.IsActive = variable.IsActive; clang.Name = str[1]; clang.LanguageID = TSM.Model.TSMContext.CurrentLanguageID; clang.ID = choice.ID; choice.Choice_Languages.Add(clang); clist.Add(choice); } } variable.Choices = clist; } VariableService.Save(variable, TSM.Model.TSMContext.CurrentSiteLanguageID); try { bool isactive = variable.IsActive; if (!isactive) { DeleteFromXML(variable.ID); } else { UpdateXML(); } } catch (Exception ee) { ErrorLog.WriteLog("ManageVariable", "SaveXML", ee, ""); } if (this.ID != Guid.Empty) { this.ManageChoices = new List <SelectListItem>(); variable.Choices.Select(c => c.Choice_Languages).ToList().ForEach(cl => this.ManageChoices.Add( new SelectListItem() { Value = (cl[0].ID == null ? null : (cl[0].ID.ToString() + "/" + cl[0].Name.ToString())), Text = cl[0].Name, Selected = true })); this.ManageChoiceForString = null; } } catch (Exception ex) { ErrorLog.WriteLog("ManageUserModel", "Save", ex, ""); } return(variable); }
/// <summary> /// Get Variable Details /// </summary> /// <param name="id"></param> /// <returns></returns> public static Variable GetVariable(Guid id, Guid languageID) { Variable objVariables = new Variable(); //Variable List <Variable> lstVariables = new List <Variable>(); //Choice Choice objChoice; Choice_Language objChoiceLang; List <Choice> lstChoice = new List <Choice>(); List <Choice_Language> lstChoiceLang = new List <Choice_Language>(); using (var context = new TSMContext()) { // return context.Variables.Where(v => v.ID == id).FirstOrDefault(); var result = from v in context.Variables join vl in context.Variable_Languages on v.ID equals vl.ID where v.ID == id && vl.LanguageID == languageID select new { ID = v.ID, Type = v.Type, ShowInAdvancedSearchFilter = v.ShowInAdvancedSearchFilter, ShowInDetailPage = v.ShowInDetailPage, ShowInReport = v.ShowInReport, IsSytemDefined = v.IsSytemDefined, FilterHeading = v.FilterHeading, IsActive = v.IsActive, IsMandatory = v.IsMandatory, CreatedBy = v.CreatedBy, CreatedDate = v.CreatedDate, DisplayOrder = v.DisplayOrder, VariableCategory = v.VariableCategory, LanguageID = vl.LanguageID, Name = vl.Name, DisplayName = vl.DisplayName, Description = vl.Description }; //Variable Language Variable_Language objVariable_Language; List <Variable_Language> lstVariable_Language = new List <Variable_Language>(); foreach (var val in result) { objVariables = new Variable(); objVariable_Language = new Variable_Language(); lstVariable_Language = new List <Variable_Language>(); objVariables.ID = val.ID; objVariables.Type = val.Type; objVariables.ShowInAdvancedSearchFilter = val.ShowInAdvancedSearchFilter; objVariables.ShowInDetailPage = val.ShowInDetailPage; objVariables.ShowInReport = val.ShowInReport; objVariables.IsSytemDefined = val.IsSytemDefined; objVariables.FilterHeading = val.FilterHeading; objVariables.IsActive = val.IsActive; objVariables.IsMandatory = val.IsMandatory; objVariables.CreatedDate = val.CreatedDate; objVariables.CreatedBy = val.CreatedBy; objVariables.DisplayOrder = val.DisplayOrder; objVariables.VariableCategory = val.VariableCategory; objVariable_Language.LanguageID = val.LanguageID; objVariable_Language.Name = val.Name; objVariable_Language.DisplayName = val.DisplayName; objVariable_Language.Description = val.Description; objVariable_Language.ID = val.ID; lstVariable_Language.Add(objVariable_Language); objVariables.Variable_Languages = lstVariable_Language; } } //For choice using (var context = new TSMContext()) { var ChoiceResult = from C in context.Choices.AsEnumerable() join CL in context.Choice_Languages.AsEnumerable() on C.ID equals CL.ID where C.VariableID == id && CL.LanguageID == languageID select new { ChoiceID = C.ID, ChoiceIsActive = C.IsActive, ChoicelLangId = CL.LanguageID, ChoiceLangName = CL.Name, ChoiceLanguageID = CL.ID, ChoiceVariableId = C.VariableID }; lstChoice = new List <Choice>(); foreach (var ch in ChoiceResult) { lstChoiceLang = new List <Choice_Language>(); objChoice = new Choice(); objChoiceLang = new Choice_Language(); objChoice.ID = ch.ChoiceID; objChoice.IsActive = ch.ChoiceIsActive; objChoiceLang.LanguageID = ch.ChoicelLangId; objChoiceLang.Name = ch.ChoiceLangName; objChoiceLang.ID = ch.ChoiceLanguageID; objChoice.VariableID = ch.ChoiceVariableId; lstChoiceLang.Add(objChoiceLang); objChoice.Choice_Languages = lstChoiceLang; lstChoice.Add(objChoice); } objVariables.Choices = lstChoice; lstVariables.Add(objVariables); } return(lstVariables[0]); }