private void AddReportToolItem(ToolsMenuItem toolItem, Point location) { UIElement toolObject = Activator.CreateInstance(toolItem.ToolType) as UIElement; if (toolItem.ToolType == typeof(ReportDataObject) && this.SectionType == SectionTypeEnum.TableData) { ReportColumnModel column = toolItem.Tag.To <ReportColumnModel>(); column.DropX = location.X; column.DropY = location.Y; if (!this.MayAddColumn(column)) { return; } toolObject.SetPropertyValue("ColumnModel", column); } toolObject.SetPropertyValue("Top", location.Y); toolObject.SetPropertyValue("Left", location.X); this.SetEditControl(toolObject, false); }
// GET: Business/ReportColumns/Edit/5 public ActionResult Edit(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } ReportColumn reportColumn = db.ReportColumns.Find(id); if (reportColumn == null) { return(HttpNotFound()); } var model = new ReportColumnModel { Id = reportColumn.Id, ServiceId = reportColumn.ServiceId, ColumnName = reportColumn.ColumnName, IsMandatory = reportColumn.IsMandatory, DisplayInFilter = reportColumn.DisplayInFilter, RolePrivileges = db.SalesRolePrivileges.Where(t => t.ColumnId == id).Select(t => t.Role.Id).ToArray(), DepartmentPrivileges = db.SalesDepartmentPrivileges.Where(t => t.ColumnId == id).Select(t => t.Department.Id).ToArray(), UserPrivileges = db.SalesUserPrivileges.Where(t => t.ColumnId == id).Select(t => t.User.Id).ToArray(), ShowInGrid = reportColumn.ShowInGrid }; ViewBag.RolePrivilegesList = new SelectList(db.Roles.Where(a => a.BusinessId == CurrentBusinessId), "Id", "Name"); ViewBag.DepartmentPrivilegesList = new SelectList(db.Departments.Where(a => a.BusinessId == CurrentBusinessId), "Id", "DepartmentName"); ViewBag.UserPrivilegesList = new SelectList(db.Users.Where(a => a.BusinessId == CurrentUser.BusinessId && a.IsActive == true && !a.Roles.Select(y => y.Name).Contains("BusinessAdmin") && !a.Roles.Select(y => y.Name).Contains("SuperAdmin") && !a.Roles.Select(y => y.Name).Contains("MasterAdmin")), "Id", "FirstName"); ViewBag.ServiceId = new SelectList(db.LookupEnrolledServices.Where(a => a.BusinessId == CurrentBusinessId), "Id", "ServiceName", reportColumn.ServiceId); ViewBag.CreatedBy = new SelectList(db.Users, "Id", "FirstName", reportColumn.CreatedBy); ViewBag.UpdatedBy = new SelectList(db.Users, "Id", "FirstName", reportColumn.UpdatedBy); return(View(model)); }
public ActionResult SaveReportColumn(ReportColumnModel model) { if (ModelState.IsValid) { var reportColumn = _reportColumnRepository.GetById(model.Id); //always set IsNew to false when saving reportColumn.IsNew = false; reportColumn = model.ToEntity(reportColumn); _reportColumnRepository.UpdateAndCommit(reportColumn); return(new NullJsonResult()); } else { return(Json(new { Errors = ModelState.Errors().ToHtmlString() })); } }
private bool MayAddColumn(ReportColumnModel column) { if (!this.SectionTableName.IsNullEmptyOrWhiteSpace() && column.TableName != this.SectionTableName) { this.RequestNewDataSections?.Invoke(this, column); return(false); } this.SectionTableName = column.TableName; this.SqlManager.AddColumn(column); this.ReportColumnAdded?.Invoke(this, column); return(true); }
internal void AddColumn(ReportColumnModel column) { if (!this.TableName.IsNullEmptyOrWhiteSpace() && this.TableName != column.TableName) { throw new ApplicationException($"Table Column Mismatch. Column {column.ColumnName} does not belong to table {this.TableName}."); } else if (this.TableName.IsNullEmptyOrWhiteSpace()) { this.TableName = column.TableName; } this.AddColumnCount(column.ColumnName); if (!this.columnsDictionary.ContainsKey(column.ColumnName)) { this.columnsDictionary.Add(column.ColumnName, column); } }
public void AddReportColumn(ReportColumnModel column) { UIElement toolObject = Activator.CreateInstance(typeof(ReportDataObject)) as UIElement; toolObject.SetPropertyValue("Top", column.DropY); toolObject.SetPropertyValue("Left", column.DropX); toolObject.SetPropertyValue("ColumnModel", column); this.SetEditControl(toolObject, false); if (this.SectionTableName.IsNullEmptyOrWhiteSpace()) { this.SectionTableName = column.TableName; } this.SqlManager.AddColumn(column); }
public ActionResult CreateReportColumn(long reportId) { var report = _reportRepository.GetById(reportId); var maxDisplayOrder = report.ReportColumns.Max(p => p.DisplayOrder) ?? 0; var reportColumn = new ReportColumn { ReportId = reportId, IsNew = true, DisplayOrder = maxDisplayOrder + 1 }; _reportColumnRepository.InsertAndCommit(reportColumn); var model = new ReportColumnModel(); model = reportColumn.ToModel(); var html = this.ReportColumnPanel(model); return(Json(new { Id = reportColumn.Id, Html = html })); }
public string BuildSelectQuery( ReportColumnModel[] columns, List <WhereParameterModel> whereParameterModel, List <ReportXMLPrintParameterModel> reportFilters, Dictionary <string, ReportSQLReplaceHeaderModel> replacementColumns, string orderByString) { if (!columns.HasElements()) { return(string.Empty); } StringBuilder result = new StringBuilder(); result.Append("SELECT "); for (int x = 0; x < columns.Length; ++x) { ReportColumnModel column = columns[x]; if (x == columns.Length - 1) { result.AppendLine($" [{columns[0].TableName}].[{column.ColumnName}] "); } else if (x == 0) { result.AppendLine($"[{columns[0].TableName}].[{column.ColumnName}], "); } else { result.AppendLine($" [{columns[0].TableName}].[{column.ColumnName}], "); } } // Add replacement SQL here foreach (KeyValuePair <string, ReportSQLReplaceHeaderModel> replacekey in replacementColumns) { result.Replace(replacekey.Key, this.BuildReplacementSQL(replacekey)); } result.AppendLine($" FROM [{columns[0].TableName}] WITH(NOLOCK) "); bool haveWhereClause = false; if (whereParameterModel.Count > 0) { result.Append("WHERE "); haveWhereClause = true; } foreach (WhereParameterModel parameter in whereParameterModel.OrderBy(so => so.OperatorIndex)) { result.AppendLine($"{parameter.ColumnName} = @{parameter.ParameterName} {(parameter.AndOrOperator == SqlWhereOperatorsEnum.None ? string.Empty : parameter.AndOrOperator.ParseToString())} "); } List <ReportXMLPrintParameterModel> validFilters = reportFilters .Where(rf => !rf.FilterValue.IsNullEmptyOrWhiteSpace()) .ToList(); if (reportFilters.Count > 0 && !haveWhereClause && validFilters.Count > 0) { result.Append(" WHERE "); } else if (haveWhereClause && validFilters.Count > 0) { result.Append(" AND "); } for (int x = 0; x < validFilters.Count; ++x) { ReportXMLPrintParameterModel filter = validFilters[x]; if (filter.FilterValue.IsNullEmptyOrWhiteSpace()) { continue; } result.AppendLine($"{filter.TableName}.{filter.ColumnName} = '{filter.FilterValue}'"); if (x < validFilters.Count - 1) { result.Append(" AND "); } } if (!orderByString.IsNullEmptyOrWhiteSpace()) { result.Append($" ORDER BY {orderByString} ASC"); } return(result.ToString()); }
public string ReportColumnPanel(ReportColumnModel model) { var html = this.RenderPartialViewToString("_ReportColumnDetails", model); return(html); }
/// <summary> /// Insert or Update /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void InsertOrUpdate(object sender, DirectEventArgs e) { try { // init entity var model = new ReportColumnModel(); ReportColumnModel resultModel; // check id if (!string.IsNullOrEmpty(hdfId.Text) && Convert.ToInt32(hdfId.Text) > 0) { var result = ReportColumnController.GetById(Convert.ToInt32(hdfId.Text)); if (result != null) { model = result; } } // set new props for entity model.ReportId = Convert.ToInt32(hdfReportId.Text); model.Name = txtName.Text; model.FieldName = hdfFieldName.Text; model.TextAlign = (ReportTextAlign)Convert.ToInt32(hdfTextAlign.Text); model.FontSize = !string.IsNullOrEmpty(txtFontSize.Text) ? Convert.ToInt32(txtFontSize.Text) : ReportHelper.DefaultFontSize; model.Format = txtFormat.Text; model.ParentId = !string.IsNullOrEmpty(hdfParentId.Text) ? Convert.ToInt32(hdfParentId.Text) : 0; model.Width = !string.IsNullOrEmpty(txtWidth.Text) ? Convert.ToInt32(txtWidth.Text) : ReportHelper.DefaultCellHeight; model.Height = !string.IsNullOrEmpty(txtHeight.Text) ? Convert.ToInt32(txtHeight.Text) : 0; model.Order = !string.IsNullOrEmpty(txtOrder.Text) ? Convert.ToInt32(txtOrder.Text) : 0; model.IsGroup = Convert.ToBoolean(hdfIsGroup.Text); model.DataType = (ReportColumnDataType)Convert.ToInt32(hdfDataType.Text); model.Status = (ReportColumnStatus)Convert.ToInt32(hdfStatus.Text); model.Type = (ReportColumnType)Convert.ToInt32(hdfType.Text); model.SummaryRunning = (ReportSummaryRunning)Convert.ToInt32(hdfSummaryRunning.Text); model.SummaryFunction = (ReportSummaryFunction)Convert.ToInt32(hdfSummaryFunction.Text); model.SummaryValue = txtValue.Text; // check entity id if (model.Id > 0) { // update resultModel = ReportColumnController.Update(model); } else { // insert resultModel = ReportColumnController.Create(model); } // check result if (resultModel != null) { Dialog.ShowNotification("Lưu thành công"); // hide window wdSetting.Hide(); // reload data gpReportColumn.Reload(); } else { Dialog.ShowNotification("Độ rộng của cột không hợp lệ"); } } catch (Exception exception) { Dialog.ShowError(exception); } }
private void SectionCanvas_RequestNewDataSection(object sender, ReportColumnModel column) { this.RequestNewDataSections?.Invoke(sender, column, this.SectionGroupIndex); }
private void ReportColumn_Added(object sender, ReportColumnModel column) { this.ReportColumnAdded?.Invoke(sender, column, this.SectionGroupIndex); }
public void AddReportColumn(ReportColumnModel column) { this.uxSectionCanvas.AddReportColumn(column); }
/// <summary> /// Init setting window /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void InitWindow(object sender, DirectEventArgs e) { try { // init id var param = e.ExtraParams["Id"]; // parse id if (int.TryParse(param, out var id)) { // init window props if (id > 0) { // edit wdSetting.Title = @"Sửa"; wdSetting.Icon = Icon.Pencil; } else { // insert wdSetting.Title = @"Thêm mới"; wdSetting.Icon = Icon.Add; } // init id hdfId.Text = id.ToString(); // init object var model = new ReportColumnModel(); // check id if (id > 0) { var result = ReportColumnController.GetById(id); if (result != null) { model = result; } } // set props txtName.Text = model.Name; hdfFieldName.Text = model.FieldName; cboFieldName.Text = model.FieldName; hdfTextAlign.Text = ((int)model.TextAlign).ToString(); cboTextAlign.Text = model.TextAlignName; txtFontSize.Text = model.FontSize.ToString(); txtFormat.Text = model.Format; hdfParentId.Text = model.ParentId.ToString(); cboParent.Text = model.ParentName; txtWidth.Text = model.Width.ToString(); txtHeight.Text = model.Height.ToString(); txtOrder.Text = model.Order.ToString(); hdfIsGroup.Text = model.IsGroup.ToString(); cboGroup.Text = model.GroupName; hdfDataType.Text = ((int)model.DataType).ToString(); cboDataType.Text = model.DataTypeName; hdfStatus.Text = ((int)model.Status).ToString(); cboStatus.Text = model.StatusName; hdfType.Text = ((int)model.Type).ToString(); cboType.Text = model.TypeName; hdfSummaryRunning.Text = ((int)model.SummaryRunning).ToString(); cboSummaryRunning.Text = model.SummaryRunningName; hdfSummaryFunction.Text = ((int)model.SummaryFunction).ToString(); cboSummaryFunction.Text = model.SummaryFunctionName; txtValue.Text = model.SummaryValue; // show window wdSetting.Show(); } } catch (Exception exception) { Dialog.ShowError(exception); } }
public ActionResult Edit(ReportColumnModel reportColumn) { if (db.ReportColumns.FirstOrDefault(a => a.Id != reportColumn.Id && a.BusinessId == CurrentBusinessId && a.ServiceId == reportColumn.ServiceId && a.ColumnName.ToLower().Replace(" ", "") == reportColumn.ColumnName.ToLower().Replace(" ", "")) != null) { ViewBag.RolePrivilegesList = new SelectList(db.Roles.Where(a => a.BusinessId == CurrentBusinessId), "Id", "Name"); ViewBag.DepartmentPrivilegesList = new SelectList(db.Departments.Where(a => a.BusinessId == CurrentBusinessId), "Id", "DepartmentName"); ViewBag.UserPrivilegesList = new SelectList(db.Users.Where(a => a.BusinessId == CurrentUser.BusinessId && a.IsActive == true && !a.Roles.Select(y => y.Name).Contains("BusinessAdmin") && !a.Roles.Select(y => y.Name).Contains("SuperAdmin") && !a.Roles.Select(y => y.Name).Contains("MasterAdmin")), "Id", "FirstName"); ViewBag.ServiceId = new SelectList(db.LookupEnrolledServices.Where(a => a.BusinessId == CurrentBusinessId), "Id", "ServiceName", reportColumn.ServiceId); ViewBag.CreatedBy = new SelectList(db.Users, "Id", "FirstName", reportColumn.CreatedBy); ViewBag.UpdatedBy = new SelectList(db.Users, "Id", "FirstName", reportColumn.UpdatedBy); ModelState.AddModelError("Error", "Allready Used"); return(View(reportColumn)); } else { if (ModelState.IsValid) { var model = db.ReportColumns.Find(reportColumn.Id); if (model != null) { model.ServiceId = reportColumn.ServiceId; model.ColumnName = reportColumn.ColumnName.Replace(" ", ""); model.IsMandatory = reportColumn.IsMandatory; model.DisplayInFilter = reportColumn.DisplayInFilter; model.UpdatedBy = CurrentUserId; model.UpdatedOn = System.DateTime.UtcNow; model.ShowInGrid = reportColumn.ShowInGrid; #region RolePrivileges var RolePrivileges = db.SalesRolePrivileges.Where(t => t.ColumnId == reportColumn.Id).Select(a => a.RoleId).ToList(); foreach (var item in RolePrivileges) { var delete = db.SalesRolePrivileges.Where(a => a.ColumnId == reportColumn.Id & a.RoleId == item).FirstOrDefault(); db.SalesRolePrivileges.Remove(delete); db.SaveChanges(); } if (reportColumn.RolePrivileges != null) { foreach (var item in reportColumn.RolePrivileges) { db.SalesRolePrivileges.Add(new SalesRolePrivilege { ColumnId = reportColumn.Id, RoleId = item, CreatedBy = CurrentUserId, CreatedOn = System.DateTime.UtcNow, UpdatedBy = CurrentUserId, UpdatedOn = System.DateTime.UtcNow }); db.SaveChanges(); } } #endregion #region DepartmentPrivileges var DepartmentPrivileges = db.SalesDepartmentPrivileges.Where(t => t.ColumnId == reportColumn.Id).Select(a => a.DepartmentId).ToList(); foreach (var item in DepartmentPrivileges) { var delete = db.SalesDepartmentPrivileges.Where(a => a.ColumnId == reportColumn.Id & a.DepartmentId == item).FirstOrDefault(); db.SalesDepartmentPrivileges.Remove(delete); db.SaveChanges(); } if (reportColumn.DepartmentPrivileges != null) { foreach (var item in reportColumn.DepartmentPrivileges) { db.SalesDepartmentPrivileges.Add(new SalesDepartmentPrivilege { ColumnId = reportColumn.Id, DepartmentId = item, CreatedBy = CurrentUserId, CreatedOn = System.DateTime.UtcNow, UpdatedBy = CurrentUserId, UpdatedOn = System.DateTime.UtcNow }); db.SaveChanges(); } } #endregion #region UserPrivileges var UserPrivileges = db.SalesUserPrivileges.Where(t => t.ColumnId == reportColumn.Id).Select(a => a.UserId).ToList(); foreach (var item in UserPrivileges) { var delete = db.SalesUserPrivileges.Where(a => a.ColumnId == reportColumn.Id & a.UserId == item).FirstOrDefault(); db.SalesUserPrivileges.Remove(delete); db.SaveChanges(); } if (reportColumn.UserPrivileges != null) { foreach (var item in reportColumn.UserPrivileges) { db.SalesUserPrivileges.Add(new SalesUserPrivilege { ColumnId = reportColumn.Id, UserId = item, CreatedBy = CurrentUserId, CreatedOn = System.DateTime.UtcNow, UpdatedBy = CurrentUserId, UpdatedOn = System.DateTime.UtcNow }); db.SaveChanges(); } } #endregion db.SaveChanges(); } //reportColumn.ColumnName = reportColumn.ColumnName.Replace(" ", ""); //reportColumn.BusinessId = (int)CurrentBusinessId; //reportColumn.UpdatedBy = CurrentUserId; //reportColumn.UpdatedOn = System.DateTime.UtcNow; //db.Entry(reportColumn).State = EntityState.Modified; return(RedirectToAction("Index")); } ViewBag.RolePrivilegesList = new SelectList(db.Roles.Where(a => a.BusinessId == CurrentBusinessId), "Id", "Name"); ViewBag.DepartmentPrivilegesList = new SelectList(db.Departments.Where(a => a.BusinessId == CurrentBusinessId), "Id", "DepartmentName"); ViewBag.UserPrivilegesList = new SelectList(db.Users.Where(a => a.BusinessId == CurrentUser.BusinessId && a.IsActive == true && !a.Roles.Select(y => y.Name).Contains("BusinessAdmin") && !a.Roles.Select(y => y.Name).Contains("SuperAdmin") && !a.Roles.Select(y => y.Name).Contains("MasterAdmin")), "Id", "FirstName"); ViewBag.ServiceId = new SelectList(db.LookupEnrolledServices.Where(a => a.BusinessId == CurrentBusinessId), "Id", "ServiceName", reportColumn.ServiceId); ViewBag.CreatedBy = new SelectList(db.Users, "Id", "FirstName", reportColumn.CreatedBy); ViewBag.UpdatedBy = new SelectList(db.Users, "Id", "FirstName", reportColumn.UpdatedBy); return(View(reportColumn)); } }
public ActionResult Create(ReportColumnModel reportColumn) { if (db.ReportColumns.FirstOrDefault(a => a.BusinessId == CurrentBusinessId && a.ServiceId == reportColumn.ServiceId && a.ColumnName.ToLower().Replace(" ", "") == reportColumn.ColumnName.ToLower().Replace(" ", "")) != null) { ViewBag.RolePrivilegesList = new SelectList(db.Roles.Where(a => a.BusinessId == CurrentBusinessId), "Id", "Name"); ViewBag.DepartmentPrivilegesList = new SelectList(db.Departments.Where(a => a.BusinessId == CurrentBusinessId), "Id", "DepartmentName"); ViewBag.UserPrivilegesList = new SelectList(db.Users.Where(a => a.BusinessId == CurrentUser.BusinessId && a.IsActive == true && !a.Roles.Select(y => y.Name).Contains("BusinessAdmin") && !a.Roles.Select(y => y.Name).Contains("SuperAdmin") && !a.Roles.Select(y => y.Name).Contains("MasterAdmin")), "Id", "FirstName"); ViewBag.ServiceId = new SelectList(db.LookupEnrolledServices.Where(a => a.BusinessId == CurrentBusinessId), "Id", "ServiceName"); ViewBag.CreatedBy = new SelectList(db.Users, "Id", "FirstName"); ViewBag.UpdatedBy = new SelectList(db.Users, "Id", "FirstName"); ModelState.AddModelError("Error", "Allready Used"); return(View(reportColumn)); } else { if (ModelState.IsValid) { var model = db.ReportColumns.Add(new ReportColumn { ColumnName = reportColumn.ColumnName.Replace(" ", ""), BusinessId = (int)CurrentBusinessId, CreatedBy = CurrentUserId, CreatedOn = System.DateTime.UtcNow, ServiceId = reportColumn.ServiceId, DisplayInFilter = reportColumn.DisplayInFilter, IsMandatory = reportColumn.IsMandatory, ShowInGrid = reportColumn.ShowInGrid }); if (db.SaveChanges() > 0) { if (reportColumn.RolePrivileges != null) { foreach (var item in reportColumn.RolePrivileges) { db.SalesRolePrivileges.Add(new SalesRolePrivilege { ColumnId = model.Id, RoleId = item, CreatedBy = CurrentUser.Id, CreatedOn = System.DateTime.UtcNow }); db.SaveChanges(); } } if (reportColumn.DepartmentPrivileges != null) { foreach (var item in reportColumn.DepartmentPrivileges) { db.SalesDepartmentPrivileges.Add(new SalesDepartmentPrivilege { ColumnId = model.Id, DepartmentId = item, CreatedBy = CurrentUser.Id, CreatedOn = System.DateTime.UtcNow }); db.SaveChanges(); } } if (reportColumn.UserPrivileges != null) { foreach (var item in reportColumn.UserPrivileges) { db.SalesUserPrivileges.Add(new SalesUserPrivilege { ColumnId = model.Id, UserId = item, CreatedBy = CurrentUser.Id, CreatedOn = System.DateTime.UtcNow }); db.SaveChanges(); } } } return(RedirectToAction("Index")); } ViewBag.RolePrivilegesList = new SelectList(db.Roles.Where(a => a.BusinessId == CurrentBusinessId), "Id", "Name"); ViewBag.DepartmentPrivilegesList = new SelectList(db.Departments.Where(a => a.BusinessId == CurrentBusinessId), "Id", "DepartmentName"); ViewBag.UserPrivilegesList = new SelectList(db.Users.Where(a => a.BusinessId == CurrentUser.BusinessId && a.IsActive == true && !a.Roles.Select(y => y.Name).Contains("BusinessAdmin") && !a.Roles.Select(y => y.Name).Contains("SuperAdmin") && !a.Roles.Select(y => y.Name).Contains("MasterAdmin")), "Id", "FirstName"); ViewBag.ServiceId = new SelectList(db.LookupEnrolledServices.Where(a => a.BusinessId == CurrentBusinessId), "Id", "ServiceName"); ViewBag.CreatedBy = new SelectList(db.Users, "Id", "FirstName"); ViewBag.UpdatedBy = new SelectList(db.Users, "Id", "FirstName"); return(View(reportColumn)); } }
public ActionResult ReportColumnEdit(ReportColumnModel reportColumn) { string[] reservedFields = new string[] { "Id", "BusinessId", "ServiceId", "PatientId", "PatientFirstName", "PatientLastName", "SpecimenCollectionDate", "SpecimenReceivedDate", "ReportedDate", "PracticeId", "PracticeName", "ProviderId", "ProviderFirstName", "ProviderLastName", "ProviderNpi", "RepId", "RepFirstName", "RepLastName", "CreatedOn", "CreatedBy", "UpdatedOn", "UpdatedBy", "OldId", "IsColumnValuesImported", "OldReportId" }; if (reservedFields.Contains(reportColumn.ColumnName)) { ModelState.AddModelError("Error", string.Format("{0} is reserved, please choose another column name", reportColumn.ColumnName)); return(View(reportColumn)); } if (db.ReportColumns.FirstOrDefault(a => a.Id != reportColumn.Id && a.BusinessId == CurrentBusinessId && a.ServiceId == reportColumn.ServiceId && a.ColumnName.ToLower().Replace(" ", "") == reportColumn.ColumnName.ToLower().Replace(" ", "")) != null) { ViewBag.RolePrivilegesList = new SelectList(db.Roles.Where(a => a.BusinessId == CurrentBusinessId).OrderBy(a => a.Name), "Id", "Name"); ViewBag.DepartmentPrivilegesList = new SelectList(db.Departments.Where(a => a.BusinessId == CurrentBusinessId).OrderBy(a => a.DepartmentName), "Id", "DepartmentName"); //ViewBag.UserPrivilegesList = new SelectList(db.Users.Where(a => a.BusinessId == CurrentUser.BusinessId && a.IsActive == true && !a.Roles.Select(y => y.Name).Contains("BusinessAdmin") && !a.Roles.Select(y => y.Name).Contains("SuperAdmin") && !a.Roles.Select(y => y.Name).Contains("MasterAdmin")), "Id", "FirstName"); ViewBag.UserPrivilegesList = new SelectList(db.Users.Where(a => a.BusinessId == CurrentUser.BusinessId && a.IsActive == true && !a.Roles.Select(y => y.Name).Contains("BusinessAdmin") && !a.Roles.Select(y => y.Name).Contains("SuperAdmin") && !a.Roles.Select(y => y.Name).Contains("MasterAdmin")).Select(s => new { Id = s.Id, UserName = s.FirstName + " " + s.LastName + " @" + s.UserName }), "Id", "UserName").OrderBy(a => a.Text); ViewBag.ServiceId = new SelectList(db.LookupEnrolledServices.Where(a => a.BusinessId == CurrentBusinessId).OrderBy(a => a.ServiceName), "Id", "ServiceName", reportColumn.ServiceId); ViewBag.CreatedBy = new SelectList(db.Users, "Id", "FirstName", reportColumn.CreatedBy); ViewBag.UpdatedBy = new SelectList(db.Users, "Id", "FirstName", reportColumn.UpdatedBy); ModelState.AddModelError("Error", "Already Used"); return(View(reportColumn)); } else { if (ModelState.IsValid) { var model = db.ReportColumns.Find(reportColumn.Id); string oldColumnName = model.ColumnName; if (model != null) { model.ServiceId = reportColumn.ServiceId; model.ColumnName = reportColumn.ColumnName.Replace(" ", ""); model.IsMandatory = reportColumn.IsMandatory; model.DisplayInFilter = reportColumn.DisplayInFilter; model.UpdatedBy = CurrentUserId; model.UpdatedOn = System.DateTime.UtcNow; model.ShowInGrid = reportColumn.ShowInGrid; model.DisplayName = reportColumn.DisplayName; model.ColumnType = reportColumn.ColumnType; model.InputType = reportColumn.InputType; #region RolePrivileges var RolePrivileges = db.SalesRolePrivileges.Where(t => t.ColumnId == reportColumn.Id).Select(a => a.RoleId).ToList(); foreach (var item in RolePrivileges) { var delete = db.SalesRolePrivileges.Where(a => a.ColumnId == reportColumn.Id & a.RoleId == item).FirstOrDefault(); db.SalesRolePrivileges.Remove(delete); db.SaveChanges(); } if (reportColumn.RolePrivileges != null) { foreach (var item in reportColumn.RolePrivileges) { db.SalesRolePrivileges.Add(new SalesRolePrivilege { ColumnId = reportColumn.Id, RoleId = item, CreatedBy = CurrentUserId, CreatedOn = System.DateTime.UtcNow, UpdatedBy = CurrentUserId, UpdatedOn = System.DateTime.UtcNow }); db.SaveChanges(); } } #endregion #region DepartmentPrivileges var DepartmentPrivileges = db.SalesDepartmentPrivileges.Where(t => t.ColumnId == reportColumn.Id).Select(a => a.DepartmentId).ToList(); foreach (var item in DepartmentPrivileges) { var delete = db.SalesDepartmentPrivileges.Where(a => a.ColumnId == reportColumn.Id & a.DepartmentId == item).FirstOrDefault(); db.SalesDepartmentPrivileges.Remove(delete); db.SaveChanges(); } if (reportColumn.DepartmentPrivileges != null) { foreach (var item in reportColumn.DepartmentPrivileges) { db.SalesDepartmentPrivileges.Add(new SalesDepartmentPrivilege { ColumnId = reportColumn.Id, DepartmentId = item, CreatedBy = CurrentUserId, CreatedOn = System.DateTime.UtcNow, UpdatedBy = CurrentUserId, UpdatedOn = System.DateTime.UtcNow }); db.SaveChanges(); } } #endregion #region UserPrivileges var UserPrivileges = db.SalesUserPrivileges.Where(t => t.ColumnId == reportColumn.Id).Select(a => a.UserId).ToList(); foreach (var item in UserPrivileges) { var delete = db.SalesUserPrivileges.Where(a => a.ColumnId == reportColumn.Id & a.UserId == item).FirstOrDefault(); db.SalesUserPrivileges.Remove(delete); db.SaveChanges(); } if (reportColumn.UserPrivileges != null) { foreach (var item in reportColumn.UserPrivileges) { db.SalesUserPrivileges.Add(new SalesUserPrivilege { ColumnId = reportColumn.Id, UserId = item, CreatedBy = CurrentUserId, CreatedOn = System.DateTime.UtcNow, UpdatedBy = CurrentUserId, UpdatedOn = System.DateTime.UtcNow }); db.SaveChanges(); } } #endregion var objUserColumnVisibility = db.UserColumnVisibilities.Where(a => a.BusinessId == CurrentBusinessId && a.ColumnName == oldColumnName && a.ServiceId == model.ServiceId); if (objUserColumnVisibility.Count() > 0) { foreach (var item in objUserColumnVisibility) { item.ColumnName = reportColumn.ColumnName; item.DisplayName = reportColumn.DisplayName; } } db.SaveChanges(); } return(RedirectToAction("ReportColumns", new { id = reportColumn.ServiceId })); } ViewBag.RolePrivilegesList = new SelectList(db.Roles.Where(a => a.BusinessId == CurrentBusinessId).OrderBy(a => a.Name), "Id", "Name"); ViewBag.DepartmentPrivilegesList = new SelectList(db.Departments.Where(a => a.BusinessId == CurrentBusinessId).OrderBy(a => a.DepartmentName), "Id", "DepartmentName"); //ViewBag.UserPrivilegesList = new SelectList(db.Users.Where(a => a.BusinessId == CurrentUser.BusinessId && a.IsActive == true && !a.Roles.Select(y => y.Name).Contains("BusinessAdmin") && !a.Roles.Select(y => y.Name).Contains("SuperAdmin") && !a.Roles.Select(y => y.Name).Contains("MasterAdmin")), "Id", "FirstName"); ViewBag.UserPrivilegesList = new SelectList(db.Users.Where(a => a.BusinessId == CurrentUser.BusinessId && a.IsActive == true && !a.Roles.Select(y => y.Name).Contains("BusinessAdmin") && !a.Roles.Select(y => y.Name).Contains("SuperAdmin") && !a.Roles.Select(y => y.Name).Contains("MasterAdmin")).Select(s => new { Id = s.Id, UserName = s.FirstName + " " + s.LastName + " @" + s.UserName }), "Id", "UserName").OrderBy(a => a.Text); ViewBag.ServiceId = new SelectList(db.LookupEnrolledServices.Where(a => a.BusinessId == CurrentBusinessId).OrderBy(a => a.ServiceName), "Id", "ServiceName", reportColumn.ServiceId); ViewBag.CreatedBy = new SelectList(db.Users, "Id", "FirstName", reportColumn.CreatedBy); ViewBag.UpdatedBy = new SelectList(db.Users, "Id", "FirstName", reportColumn.UpdatedBy); return(View(reportColumn)); } }