public ActionResult SaveNotes(BL.NotesData ModelNotes) { try { if (Service == null) { Service = BL.OrganizationUtility.GetCRMService(); } if (BL.CurrentUser.Instance != null && BL.CurrentUser.Instance.VerifiedUser.UserId != Guid.Empty) { Entity entity = new Entity("annotation"); entity["subject"] = " by " + BL.CurrentUser.Instance.VerifiedUser.UserName; entity["notetext"] = "*WEB*" + ModelNotes.notetext; if (ModelNotes.Attachment != null) { if (ModelNotes.Attachment.ContentLength > 0) { var fname = Path.GetFileNameWithoutExtension(ModelNotes.Attachment.FileName) + (DateTime.Now).ToString("ddMMyyhhmmss"); var FExtension = Path.GetExtension(ModelNotes.Attachment.FileName); var fileName = fname + FExtension;// //var fileName = Path.GetFileName(ModelNotes.Attachment.FileName);// + (DateTime.Now).ToString("dd-MM-yyyy")); var path = Path.Combine(Server.MapPath("~/App_Data/"), fileName); ModelNotes.Attachment.SaveAs(path); FileStream stream = new FileStream(path, FileMode.Open); byte[] byteData = new byte[stream.Length]; stream.Read(byteData, 0, byteData.Length); stream.Close(); entity["filename"] = fileName; entity["mimetype"] = ModelNotes.Attachment.ContentType; entity["documentbody"] = System.Convert.ToBase64String(byteData); } } EntityReference IncidentIdNew = new EntityReference("incident", ModelNotes.IncidentId); entity["objectid"] = IncidentIdNew; EntityReference User = new EntityReference("contact", BL.CurrentUser.Instance.VerifiedUser.UserId); //entity["createdby"] = User.Id; Service.Create(entity); //return View("TicketsNotes"); } else { return(RedirectToAction("../Activity/Login")); } ViewBag.LiDashboard = "class="; ViewBag.LiGetAllCasesForIncident = "class=active"; ViewBag.LiCreateCases = "class="; ViewBag.LiPassword = "******"; return(Redirect("TicketsNotes?Id=" + ModelNotes.IncidentId)); } catch (Exception) { return(RedirectToAction("../Activity/Login")); } }
public ActionResult Dashboard() { if (BL.CurrentUser.Instance != null && BL.CurrentUser.Instance.VerifiedUser.UserId != Guid.Empty) { if (Service == null) { Service = BL.OrganizationUtility.GetCRMService(); } Session["Uname"] = BL.CurrentUser.Instance.VerifiedUser.FirstName + " " + BL.CurrentUser.Instance.VerifiedUser.LastName; ViewBag.Uname = BL.CurrentUser.Instance.VerifiedUser.UserName; BL.NotesData Model = new BL.NotesData() { lstPortalUser = null, lstAssignedPortalUser = null, lstDataRow = null, lstHeaderColumn = null }; Guid DocumentId = new Guid(); EntityCollection Col = PortalRepository.GetNameWiseDocumentId("new_documentmanagementsystem", Service, BL.CurrentUser.Instance.VerifiedUser.UserId, BL.CurrentUser.Instance.VerifiedUser.Documenttyp); if (Col != null && Col.Entities.Count > 0) { foreach (Entity enty in Col.Entities) { DocumentId = new Guid(enty.Attributes["new_documentmanagementsystemid"].ToString()); } } Model.IncidentId = DocumentId; //BL.DashboardData CounterData = PortalRepository.GetCounterDocumentNotesData("annotation", Service, Model.IncidentId, BL.CurrentUser.Instance.VerifiedUser.LastName); BL.DashboardData DashData = new BL.DashboardData(); //DashData.Approved = CounterData.Approved; // DashData.Reject = CounterData.Reject; // DashData.Pending = CounterData.Pending; ViewBag.LiDashboard = "class=active"; ViewBag.LiGetAllCasesForIncident = "class="; ViewBag.LiCreateCases = "class="; ViewBag.LiPassword = "******"; return(View(DashData)); // Service = BL.CRMUtility.GetCRMService(); //List<BL.Activity> lstActivity = PortalUserRepository.GetAllActivity(Service, BL.CurrentUser.Instance.VerifiedUser.UserId, Guid.Empty); } else { return(RedirectToAction("Login")); } }
public ActionResult ViewTicketsNotes() { try { if (BL.CurrentUser.Instance != null && BL.CurrentUser.Instance.VerifiedUser.UserId != Guid.Empty && !string.IsNullOrWhiteSpace(Request.QueryString["Id"])) { BL.NotesData Model = new BL.NotesData(); Model.IncidentId = new Guid(Request.QueryString["Id"].ToString()); //if (lstTroubleTicketNotes == null || lstTroubleTicketNotes.Count <= 0) lstTroubleTicketNotes = PortalRepository.GetNotesData("annotation", Service, Model.IncidentId); if (lstTroubleTicketNotes.Count > 0 && lstTroubleTicketNotes != null) { Model.lstNotesData = lstTroubleTicketNotes; //FileStream stream = new FileStream(Model.lstNotesData.filename, FileMode.OpenOrCreate); //byte[] byteData = new byte[stream.Length]; //stream.Write(byteData, 0, byteData.Length); //stream.Close(); //System.Convert.FromBase64CharArray(byteData); } //TimeZoneInfo cstZone = TimeZoneInfo.(190); //DateTime cstTime = TimeZoneInfo.ConvertTimeFromUtc(timeUtc, cstZone); ViewBag.GetTimeZone = new Func <DateTime, string>(LocalTime); ViewBag.LiDashboard = "class="; ViewBag.LiGetAllCasesForIncident = "class=active"; ViewBag.LiCreateCases = "class="; ViewBag.LiPassword = "******"; return(View("ViewTicketsNotes", Model)); } else { return(RedirectToAction("../Activity/Login")); } } catch (Exception) { return(RedirectToAction("../Activity/Login")); } }
public ActionResult TicketsEscalationNotes() { try { if (BL.CurrentUser.Instance != null && BL.CurrentUser.Instance.VerifiedUser.UserId != Guid.Empty && !string.IsNullOrWhiteSpace(Request.QueryString["Id"])) { BL.NotesData Model = new BL.NotesData() { lstDataRow = null, lstHeaderColumn = null }; Model.IncidentId = new Guid(Request.QueryString["Id"].ToString()); #region Incident Data // BL.NotesData AllCases = new BL.NotesData() { lstDataRow = null, lstHeaderColumn = null }; if (Service == null) { Service = BL.OrganizationUtility.GetCRMService(); } //savestatecode = Model.statecode; if (lstTroubleTicket == null || lstTroubleTicket.Count <= 0) { lstTroubleTicket = PortalRepository.GetFieldAttribute("incident", Service); } lstTroubleTicket = lstTroubleTicket.OrderBy(x => x.Index).ToList(); if (lstTroubleTicket != null && lstTroubleTicket.Count > 0) { List <BL.DataRow> lstDataRowValue = new List <BL.DataRow>(); EntityCollection Col = PortalRepository.GetIdWiseEntityRecords("incident", lstTroubleTicket, Service, BL.CurrentUser.Instance.VerifiedUser.UserId, new Guid(BL.CurrentUser.Instance.VerifiedUser.CompanyName), Model.IncidentId); if (Col != null && Col.Entities.Count > 0) { foreach (Entity enty in Col.Entities) { List <string> OneDataRowValue = new List <string>(); for (int i = 0; i < lstTroubleTicket.Count; i++) { if (enty.Contains(lstTroubleTicket[i].FieldName) && enty.Attributes[lstTroubleTicket[i].FieldName] != null) { OneDataRowValue.Add(GetFieldValue(enty, lstTroubleTicket[i].FieldName, lstTroubleTicket[i].FieldType)); } else { OneDataRowValue.Add(""); } } lstDataRowValue.Add(new BL.DataRow() { DataRoValue = OneDataRowValue.ToArray() }); } } if (lstDataRowValue.Count > 0 && lstTroubleTicket.Count > 0) { Model = new BL.NotesData() { lstDataRow = lstDataRowValue, lstHeaderColumn = lstTroubleTicket, IncidentId = new Guid(Request.QueryString["Id"].ToString()) } } ; else { Model = new BL.NotesData() { lstDataRow = null, lstHeaderColumn = null } }; } #endregion lstTroubleTicketNotes = PortalRepository.GetNotesData("annotation", Service, Model.IncidentId); if (lstTroubleTicketNotes.Count > 0 && lstTroubleTicketNotes != null) { Model.lstNotesData = lstTroubleTicketNotes; } ViewBag.GetTimeZone = new Func <DateTime, string>(LocalTime); ViewBag.LiDashboard = "class="; ViewBag.LiGetAllCasesForIncident = "class=active"; ViewBag.LiCreateCases = "class="; ViewBag.LiPassword = "******"; return(View("TicketsEscalationNotes", Model)); } else { return(RedirectToAction("../Activity/Login")); } } catch (Exception) { return(RedirectToAction("../Activity/Login")); } }
public static BL.DashboardData GetCounterDocumentNotesData(string EntityName, IOrganizationService _service, Guid Id, string Search, string UserType, string ApprovalStatus, string PortalUser, DateTime StartDate, DateTime EndDate) { List <BL.NotesData> lst = new List <BL.NotesData>(); Entity ConfigEntity = null; EntityCollection Cols = null; if (UserType == "125970000") { QueryExpression QueryShared = new QueryExpression("mhl_portalnoteshared"); QueryShared.ColumnSet = new ColumnSet(true); QueryShared.Criteria.AddCondition(new ConditionExpression("mhl_portaluser", ConditionOperator.Equal, BL.CurrentUser.Instance.VerifiedUser.UserId)); EntityCollection ColsShared = _service.RetrieveMultiple(QueryShared); var SharedDocument = ColsShared.Entities.Select(x => x.Attributes["mhl_documentnotesid"]).ToArray(); if (SharedDocument.Length > 0) { QueryExpression Query = new QueryExpression(EntityName); Query.ColumnSet = new ColumnSet(new[] { "subject", "notetext", "objectid", "annotationid", "createdby", "createdon", "filename", "documentbody", "mimetype" }); FilterExpression filter = new FilterExpression(LogicalOperator.And); FilterExpression filter1 = new FilterExpression(LogicalOperator.And); filter1.Conditions.Add(new ConditionExpression("annotationid", ConditionOperator.In, ColsShared.Entities.Select(x => x.Attributes["mhl_documentnotesid"]).ToArray())); if (Id != Guid.Empty) { filter1.Conditions.Add(new ConditionExpression("objectid", ConditionOperator.Equal, Id)); } else { QueryExpression query = new QueryExpression("new_documentmanagementsystem"); query.ColumnSet = new ColumnSet(true); EntityCollection Col = _service.RetrieveMultiple(query); if (Col != null && Col.Entities.Count > 0) { filter1.Conditions.Add(new ConditionExpression("objectid", ConditionOperator.In, Col.Entities.Select(x => x.Attributes["new_documentmanagementsystemid"]).ToArray())); } } // filter1.Conditions.Add(new ConditionExpression("createdon", ConditionOperator.OnOrAfter, Convert.ToDateTime(StartDate).ToString("yyyy-MM-dd"))); // filter1.Conditions.Add(new ConditionExpression("createdon", ConditionOperator.OnOrBefore, Convert.ToDateTime(EndDate).ToString("yyyy-MM-dd"))); if (PortalUser != null) { filter1.Conditions.Add(new ConditionExpression("subject", ConditionOperator.Like, "%" + PortalUser + "%")); } FilterExpression filter2 = new FilterExpression(LogicalOperator.Or); if (Search != null) { var splitted = Search.Split(' '); for (int i = 0; i < splitted.Count(); i++) { filter2.Conditions.Add(new ConditionExpression("notetext", ConditionOperator.Like, "%" + splitted[i].ToString() + "%")); } } filter.AddFilter(filter1); filter.AddFilter(filter2); Query.Criteria = filter; Query.AddOrder("createdon", OrderType.Descending); Cols = _service.RetrieveMultiple(Query); } } else { QueryExpression Query = new QueryExpression(EntityName); Query.ColumnSet = new ColumnSet(new[] { "subject", "notetext", "objectid", "annotationid", "createdby", "createdon", "filename", "documentbody", "mimetype" }); //Query.LinkEntities.Add(new LinkEntity(EntityName, "mhl_portalnoteshared", "annotationid", "mhl_documentnotesid", JoinOperator.Natural)); //Query.LinkEntities[0].Columns.AddColumns("mhl_approvalstatus", "mhl_approvedby"); FilterExpression filter = new FilterExpression(LogicalOperator.And); FilterExpression filter1 = new FilterExpression(LogicalOperator.And); if (Id != Guid.Empty) { filter1.Conditions.Add(new ConditionExpression("objectid", ConditionOperator.Equal, Id)); } else { QueryExpression query = new QueryExpression("new_documentmanagementsystem"); query.ColumnSet = new ColumnSet(true); EntityCollection Col = _service.RetrieveMultiple(query); if (Col != null && Col.Entities.Count > 0) { filter1.Conditions.Add(new ConditionExpression("objectid", ConditionOperator.In, Col.Entities.Select(x => x.Attributes["new_documentmanagementsystemid"]).ToArray())); } } // filter1.Conditions.Add(new ConditionExpression("createdon", ConditionOperator.OnOrAfter, Convert.ToDateTime(StartDate).ToString("yyyy-MM-dd"))); // filter1.Conditions.Add(new ConditionExpression("createdon", ConditionOperator.OnOrBefore, Convert.ToDateTime(EndDate).ToString("yyyy-MM-dd"))); if (PortalUser != null) { filter1.Conditions.Add(new ConditionExpression("subject", ConditionOperator.Like, "%" + PortalUser + "%")); } FilterExpression filter2 = new FilterExpression(LogicalOperator.Or); if (Search != null) { var splitted = Search.Split(' '); for (int i = 0; i < splitted.Count(); i++) { filter2.Conditions.Add(new ConditionExpression("notetext", ConditionOperator.Like, "%" + splitted[i].ToString() + "%")); } } filter.AddFilter(filter1); filter.AddFilter(filter2); Query.Criteria = filter; Query.AddOrder("createdon", OrderType.Descending); Cols = _service.RetrieveMultiple(Query); } if (Cols != null && Cols.Entities.Count > 0) { for (int i = 0; i < Cols.Entities.Count; i++) { ConfigEntity = Cols.Entities[i]; if (ConfigEntity != null) { //EntityReference objectid = new EntityReference("incident", (Guid)ConfigEntity.Attributes["objectid"]); BL.NotesData Data = new BL.NotesData(); QueryExpression QueryShared = new QueryExpression("mhl_portalnoteshared"); QueryShared.ColumnSet = new ColumnSet(true); QueryShared.Criteria.AddCondition(new ConditionExpression("mhl_documentnotesid", ConditionOperator.Equal, new Guid(ConfigEntity.Attributes["annotationid"].ToString()).ToString().Replace("{", "").Replace("}", ""))); EntityCollection ColsShared = _service.RetrieveMultiple(QueryShared); if (ColsShared.Entities.Count > 0) { Entity ConfigEntityNew = new Entity(); ConfigEntityNew = ColsShared.Entities[0]; if (ConfigEntityNew.Attributes.Contains("mhl_approvedby")) { Data.ApprovedBy = ((EntityReference)(ConfigEntityNew["mhl_approvedby"])).Id.ToString(); } if (ConfigEntityNew.Attributes.Contains("mhl_approvalstatus")) { Data.ApprovalStatus = ((OptionSetValue)(ConfigEntityNew["mhl_approvalstatus"])).Value.ToString(); } } lst.Add(Data); } } } BL.DashboardData DashData = new BL.DashboardData(); DashData.Approved = lst.Where(x => x.ApprovalStatus == "125970000").Count().ToString(); DashData.Reject = lst.Where(x => x.ApprovalStatus == "125970001").Count().ToString(); DashData.Pending = lst.Where(x => x.ApprovalStatus == "125970002").Count().ToString(); DashData.Processed = lst.Where(x => x.ApprovalStatus == "125970003").Count().ToString(); //125970000 //125970001 // 125970002 return(DashData); }
public static List <BL.NotesData> GetAnnotationIdWiseNotesData(string EntityName, IOrganizationService _service, Guid Id) { List <BL.NotesData> lst = new List <BL.NotesData>(); Entity ConfigEntity = null; EntityCollection Cols = null; QueryExpression Query = new QueryExpression(EntityName); Query.ColumnSet = new ColumnSet(new[] { "subject", "notetext", "objectid", "annotationid", "createdby", "createdon", "filename", "documentbody", "mimetype" }); Query.Criteria.AddCondition(new ConditionExpression("annotationid", ConditionOperator.Equal, Id)); Query.AddOrder("createdon", OrderType.Descending); Cols = _service.RetrieveMultiple(Query); if (Cols != null && Cols.Entities.Count > 0) { for (int i = 0; i < Cols.Entities.Count; i++) { ConfigEntity = Cols.Entities[i]; if (ConfigEntity != null) { //EntityReference objectid = new EntityReference("incident", (Guid)ConfigEntity.Attributes["objectid"]); BL.NotesData Data = new BL.NotesData(); if (ConfigEntity.Attributes.Contains("subject")) { Data.subject = ConfigEntity.Attributes["subject"].ToString();// ToString(); } else { Data.subject = null; } if (ConfigEntity.Attributes.Contains("notetext")) { Data.notetext = ConfigEntity.Attributes["notetext"].ToString(); } else { Data.notetext = string.Empty; } Data.IncidentId = (Guid)((EntityReference)ConfigEntity.Attributes["objectid"]).Id; Data.annotationid = (Guid)(ConfigEntity.Attributes["annotationid"]); if (ConfigEntity.Attributes.Contains("createdby")) { Data.createdby = ((EntityReference)ConfigEntity.Attributes["createdby"]).Name.ToString(); } else { Data.createdby = null; } if (ConfigEntity.Attributes.Contains("createdon")) { Data.createdon = (DateTime)(ConfigEntity.Attributes["createdon"]); } else { Data.createdon = DateTime.Now; } if (ConfigEntity.Attributes.Contains("mimetype")) { Data.mimetype = ConfigEntity.Attributes["mimetype"].ToString(); } else { Data.mimetype = null; } if (ConfigEntity.Attributes.Contains("filename")) { Data.filename = ConfigEntity.Attributes["filename"].ToString(); } else { Data.filename = null; } if (ConfigEntity.Attributes.Contains("documentbody")) { //using (FileStream fileStream = new FileStream(ConfigEntity.Attributes["filename"].ToString(), FileMode.OpenOrCreate)) //{ // byte[] fileContent = Convert.FromBase64String(ConfigEntity.Attributes["documentbody"].ToString()); // fileStream.Write(fileContent, 0, fileContent.Length); // Data.Attachment = (HttpPostedFileBase)fileContent; //} Data.filecontent = ConfigEntity.Attributes["documentbody"].ToString(); } else { Data.filecontent = null; } QueryExpression QueryShared = new QueryExpression("mhl_portalnoteshared"); QueryShared.ColumnSet = new ColumnSet(true); QueryShared.Criteria.AddCondition(new ConditionExpression("mhl_documentnotesid", ConditionOperator.Equal, new Guid(ConfigEntity.Attributes["annotationid"].ToString()).ToString().Replace("{", "").Replace("}", ""))); QueryShared.Criteria.AddCondition(new ConditionExpression("mhl_name", ConditionOperator.NotNull)); EntityCollection ColsSharedApprove = _service.RetrieveMultiple(QueryShared); if (ColsSharedApprove.Entities.Count > 0) { Entity ConfigEntityNew = new Entity(); ConfigEntityNew = ColsSharedApprove.Entities[0]; if (ConfigEntityNew.Attributes.Contains("mhl_name")) { QueryExpression Query1 = new QueryExpression("new_portaluser"); Query1.Criteria.AddCondition(new ConditionExpression("new_portaluserid", ConditionOperator.Equal, ((EntityReference)(ConfigEntityNew["mhl_portaluser"])).Id.ToString())); Query1.Criteria.AddCondition(new ConditionExpression("statecode", ConditionOperator.Equal, 0)); Query1.ColumnSet = new ColumnSet(true); EntityCollection UserPortalCol = _service.RetrieveMultiple(Query1); if (UserPortalCol != null) { if (UserPortalCol.Entities.Count > 0) { Data.PortalUsercreatedby = UserPortalCol.Entities[0]["new_fullname"].ToString(); } } } if (ConfigEntityNew.Attributes.Contains("mhl_approvedby")) { Data.ApprovedBy = ((EntityReference)(ConfigEntityNew["mhl_approvedby"])).Id.ToString(); QueryExpression Query1 = new QueryExpression("new_portaluser"); Query1.Criteria.AddCondition(new ConditionExpression("new_portaluserid", ConditionOperator.Equal, Data.ApprovedBy)); Query1.Criteria.AddCondition(new ConditionExpression("statecode", ConditionOperator.Equal, 0)); Query1.ColumnSet = new ColumnSet(true); EntityCollection UserPortalCol = _service.RetrieveMultiple(Query1); if (UserPortalCol != null) { if (UserPortalCol.Entities.Count > 0) { Data.ApprovedByName = UserPortalCol.Entities[0]["new_fullname"].ToString(); } } } if (ConfigEntityNew.Attributes.Contains("mhl_approvalstatus")) { Data.ApprovalStatus = ((OptionSetValue)(ConfigEntityNew["mhl_approvalstatus"])).Value.ToString(); } } lst.Add(Data); } } } return(lst); }
public static List <BL.NotesData> GetDocumentNotesData(string EntityName, IOrganizationService _service, Guid Id, string Search, string UserType, string ApprovalStatus, string PortalUser, DateTime StartDate, DateTime EndDate) { List <BL.NotesData> lst = new List <BL.NotesData>(); //List<BL.User> Entity ConfigEntity = null; EntityCollection Cols = null; bool AllowApproveFlag = false; EntityCollection ColsShared = new EntityCollection(); if (UserType == "125970000") { #region Document For User QueryExpression QueryShared = new QueryExpression("mhl_portalnoteshared"); QueryShared.ColumnSet = new ColumnSet(true); QueryShared.Criteria.AddCondition(new ConditionExpression("mhl_portaluser", ConditionOperator.Equal, BL.CurrentUser.Instance.VerifiedUser.UserId)); ColsShared = _service.RetrieveMultiple(QueryShared); var SharedDocument = ColsShared.Entities.Select(x => x.Attributes["mhl_documentnotesid"]).ToArray(); //if (ColsShared.Entities.Count > 0) //{ // var ApprovedFlag = ColsShared.Entities.Select(x => x.Attributes["mhl_allowtoapprove"]).ToArray(); // if (ApprovedFlag[0].ToString().ToLower() == "true") // { // AllowApproveFlag = true; // } //} if (SharedDocument.Length > 0) { QueryExpression Query = new QueryExpression(EntityName); Query.ColumnSet = new ColumnSet(new[] { "subject", "notetext", "objectid", "annotationid", "createdby", "createdon", "filename", "documentbody", "mimetype" }); FilterExpression filter = new FilterExpression(LogicalOperator.And); FilterExpression filter1 = new FilterExpression(LogicalOperator.And); filter1.Conditions.Add(new ConditionExpression("annotationid", ConditionOperator.In, ColsShared.Entities.Select(x => x.Attributes["mhl_documentnotesid"]).ToArray())); if (Id != Guid.Empty) { filter1.Conditions.Add(new ConditionExpression("objectid", ConditionOperator.Equal, Id)); } else { QueryExpression query = new QueryExpression("new_documentmanagementsystem"); query.ColumnSet = new ColumnSet(true); EntityCollection Col = _service.RetrieveMultiple(query); if (Col != null && Col.Entities.Count > 0) { filter1.Conditions.Add(new ConditionExpression("objectid", ConditionOperator.In, Col.Entities.Select(x => x.Attributes["new_documentmanagementsystemid"]).ToArray())); } } //filter1.Conditions.Add(new ConditionExpression("createdon", ConditionOperator.OnOrAfter, Convert.ToDateTime(StartDate).ToString("yyyy-MM-dd"))); //filter1.Conditions.Add(new ConditionExpression("createdon", ConditionOperator.OnOrBefore, Convert.ToDateTime(EndDate).ToString("yyyy-MM-dd"))); if (PortalUser != null) { filter1.Conditions.Add(new ConditionExpression("subject", ConditionOperator.Like, "%" + PortalUser + "%")); } FilterExpression filter2 = new FilterExpression(LogicalOperator.Or); if (Search != null) { var splitted = Search.Split(' '); for (int i = 0; i < splitted.Count(); i++) { filter2.Conditions.Add(new ConditionExpression("notetext", ConditionOperator.Like, "%" + splitted[i].ToString() + "%")); } } filter.AddFilter(filter1); filter.AddFilter(filter2); Query.Criteria = filter; Query.AddOrder("createdon", OrderType.Descending); Cols = _service.RetrieveMultiple(Query); } #endregion } else { #region Document For Admin QueryExpression Query = new QueryExpression(EntityName); Query.ColumnSet = new ColumnSet(new[] { "subject", "notetext", "objectid", "annotationid", "createdby", "createdon", "filename", "documentbody", "mimetype" }); //Query.LinkEntities.Add(new LinkEntity(EntityName, "mhl_portalnoteshared", "annotationid", "mhl_documentnotesid", JoinOperator.Natural)); //Query.LinkEntities[0].Columns.AddColumns("mhl_approvalstatus", "mhl_approvedby"); FilterExpression filter = new FilterExpression(LogicalOperator.And); FilterExpression filter1 = new FilterExpression(LogicalOperator.And); if (Id != Guid.Empty) { filter1.Conditions.Add(new ConditionExpression("objectid", ConditionOperator.Equal, Id)); } else { QueryExpression query = new QueryExpression("new_documentmanagementsystem"); query.ColumnSet = new ColumnSet(true); EntityCollection Col = _service.RetrieveMultiple(query); if (Col != null && Col.Entities.Count > 0) { filter1.Conditions.Add(new ConditionExpression("objectid", ConditionOperator.In, Col.Entities.Select(x => x.Attributes["new_documentmanagementsystemid"]).ToArray())); } } //filter1.Conditions.Add(new ConditionExpression("createdon", ConditionOperator.OnOrAfter, Convert.ToDateTime(StartDate).ToString("yyyy-MM-dd"))); //filter1.Conditions.Add(new ConditionExpression("createdon", ConditionOperator.OnOrBefore, Convert.ToDateTime(EndDate).ToString("yyyy-MM-dd"))); if (PortalUser != null) { filter1.Conditions.Add(new ConditionExpression("subject", ConditionOperator.Like, "%" + PortalUser + "%")); } FilterExpression filter2 = new FilterExpression(LogicalOperator.Or); if (Search != null) { var splitted = Search.Split(' '); for (int i = 0; i < splitted.Count(); i++) { filter2.Conditions.Add(new ConditionExpression("notetext", ConditionOperator.Like, "%" + splitted[i].ToString() + "%")); } } filter.AddFilter(filter1); filter.AddFilter(filter2); Query.Criteria = filter; Query.AddOrder("createdon", OrderType.Descending); Cols = _service.RetrieveMultiple(Query); #endregion } if (Cols != null && Cols.Entities.Count > 0) { for (int i = 0; i < Cols.Entities.Count; i++) { ConfigEntity = Cols.Entities[i]; if (ConfigEntity != null) { //EntityReference objectid = new EntityReference("incident", (Guid)ConfigEntity.Attributes["objectid"]); BL.NotesData Data = new BL.NotesData(); if (ConfigEntity.Attributes.Contains("subject")) { Data.subject = ConfigEntity.Attributes["subject"].ToString();// ToString(); } else { Data.subject = null; } if (ConfigEntity.Attributes.Contains("notetext")) { Data.notetext = ConfigEntity.Attributes["notetext"].ToString(); } else { Data.notetext = string.Empty; } Data.IncidentId = (Guid)((EntityReference)ConfigEntity.Attributes["objectid"]).Id; Data.annotationid = (Guid)(ConfigEntity.Attributes["annotationid"]); if (ConfigEntity.Attributes.Contains("createdby")) { Data.createdby = ((EntityReference)ConfigEntity.Attributes["createdby"]).Name.ToString(); } else { Data.createdby = null; } if (ConfigEntity.Attributes.Contains("createdon")) { Data.createdon = (DateTime)(ConfigEntity.Attributes["createdon"]); } else { Data.createdon = DateTime.Now; } if (ConfigEntity.Attributes.Contains("mimetype")) { Data.mimetype = ConfigEntity.Attributes["mimetype"].ToString(); } else { Data.mimetype = null; } if (ConfigEntity.Attributes.Contains("filename")) { Data.filename = ConfigEntity.Attributes["filename"].ToString(); } else { Data.filename = null; } if (ConfigEntity.Attributes.Contains("documentbody")) { //using (FileStream fileStream = new FileStream(ConfigEntity.Attributes["filename"].ToString(), FileMode.OpenOrCreate)) //{ // byte[] fileContent = Convert.FromBase64String(ConfigEntity.Attributes["documentbody"].ToString()); // fileStream.Write(fileContent, 0, fileContent.Length); // Data.Attachment = (HttpPostedFileBase)fileContent; //} Data.filecontent = ConfigEntity.Attributes["documentbody"].ToString(); } else { Data.filecontent = null; } if (ColsShared.Entities.Count > 0) { foreach (Entity entityshar in ColsShared.Entities) { if (Convert.ToString(entityshar.Attributes["mhl_documentnotesid"]) == ConfigEntity.Attributes["annotationid"].ToString().Replace("{", "").Replace("}", "")) { AllowApproveFlag = Convert.ToBoolean(entityshar.Attributes["mhl_allowtoapprove"]); } } //var ApprovedFlag = ColsShared.Entities.Where(y => y.Attributes["mhl_documentnotesid"] == ConfigEntity.Attributes["annotationid"].ToString().Replace("{", "").Replace("}", ""));//.Select(x => x.Attributes["mhl_allowtoapprove"]).ToArray(); //if (ApprovedFlag[0].ToString().ToLower() == "true") //{ // AllowApproveFlag = true; //} } Data.AllowApprove = AllowApproveFlag; QueryExpression QueryShared = new QueryExpression("mhl_portalnoteshared"); QueryShared.ColumnSet = new ColumnSet(true); QueryShared.Criteria.AddCondition(new ConditionExpression("mhl_documentnotesid", ConditionOperator.Equal, new Guid(ConfigEntity.Attributes["annotationid"].ToString()).ToString().Replace("{", "").Replace("}", ""))); QueryShared.Criteria.AddCondition(new ConditionExpression("mhl_name", ConditionOperator.NotNull)); EntityCollection ColsSharedApprove = _service.RetrieveMultiple(QueryShared); if (ColsSharedApprove.Entities.Count > 0) { Entity ConfigEntityNew = new Entity(); ConfigEntityNew = ColsSharedApprove.Entities[0]; if (ConfigEntityNew.Attributes.Contains("mhl_notesdescription")) { Data.notesdescription = ConfigEntityNew.Attributes["mhl_notesdescription"].ToString(); } if (ConfigEntityNew.Attributes.Contains("mhl_name")) { QueryExpression Query = new QueryExpression("new_portaluser"); Query.Criteria.AddCondition(new ConditionExpression("new_portaluserid", ConditionOperator.Equal, ((EntityReference)(ConfigEntityNew["mhl_portaluser"])).Id.ToString())); Query.Criteria.AddCondition(new ConditionExpression("statecode", ConditionOperator.Equal, 0)); Query.ColumnSet = new ColumnSet(true); EntityCollection UserPortalCol = _service.RetrieveMultiple(Query); if (UserPortalCol != null) { if (UserPortalCol.Entities.Count > 0) { Data.PortalUsercreatedby = UserPortalCol.Entities[0]["new_fullname"].ToString(); } } } if (ConfigEntityNew.Attributes.Contains("mhl_approvedby")) { Data.ApprovedBy = ((EntityReference)(ConfigEntityNew["mhl_approvedby"])).Id.ToString(); QueryExpression Query = new QueryExpression("new_portaluser"); Query.Criteria.AddCondition(new ConditionExpression("new_portaluserid", ConditionOperator.Equal, Data.ApprovedBy)); Query.Criteria.AddCondition(new ConditionExpression("statecode", ConditionOperator.Equal, 0)); Query.ColumnSet = new ColumnSet(true); EntityCollection UserPortalCol = _service.RetrieveMultiple(Query); if (UserPortalCol != null) { if (UserPortalCol.Entities.Count > 0) { Data.ApprovedByName = UserPortalCol.Entities[0]["new_fullname"].ToString(); } } } if (ConfigEntityNew.Attributes.Contains("mhl_processedby")) { Data.ProcessedBy = ((EntityReference)(ConfigEntityNew["mhl_processedby"])).Id.ToString(); QueryExpression Query = new QueryExpression("new_portaluser"); Query.Criteria.AddCondition(new ConditionExpression("new_portaluserid", ConditionOperator.Equal, Data.ProcessedBy)); Query.Criteria.AddCondition(new ConditionExpression("statecode", ConditionOperator.Equal, 0)); Query.ColumnSet = new ColumnSet(true); EntityCollection UserPortalCol = _service.RetrieveMultiple(Query); if (UserPortalCol != null) { if (UserPortalCol.Entities.Count > 0) { Data.ProcessedByName = UserPortalCol.Entities[0]["new_fullname"].ToString(); } } } if (ConfigEntityNew.Attributes.Contains("mhl_approvalstatus")) { Data.ApprovalStatus = ((OptionSetValue)(ConfigEntityNew["mhl_approvalstatus"])).Value.ToString(); } } lst.Add(Data); } } } #region For SuperUser if (UserType == "125970002") { if (ApprovalStatus == null || ApprovalStatus == "0") { ApprovalStatus = "125970000,125970003"; } } #endregion if (ApprovalStatus != null) { if (ApprovalStatus != "0") { var ids = ApprovalStatus.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries).Select(x => Convert.ToString(x)); return(lst.Where(x => ids.Any(y => y == x.ApprovalStatus)).ToList()); //return lst.Where(x => x.ApprovalStatus == ApprovalStatus).ToList(); } else { return(lst); } } else { return(lst); } }