public async Task <ActionResult> DoInbox(int documentId) { var result = new NewInboxViewModel(); var tmp = await helper.GetInMailbox(documentId); var tmpModel = JsonConvert.DeserializeObject <InboxDocumentModel>(tmp); if (tmpModel.IncomingMailboxId > 0) { result.DBModel = tmpModel; } else { result.ErrorMessage = "No se pudo obtener información."; } var statusList = new List <SelectListItem>(); statusList.Add(new SelectListItem() { Text = "Asignar", Value = "Asignado" }); statusList.Add(new SelectListItem() { Text = "Atender", Value = "Atendido" }); ViewBag.StatusList = new SelectList(statusList, "Value", "Text"); if (tmpModel.DocumentStatus == "Atendido") { result.WarningMessage = "Este documento ha sido atendido."; } else if (!tmpModel.AssignedToLogin.Contains(User.Identity.Name.ToLower())) { result.WarningMessage = "Usted no es el responsable de este documento, puede visualizar la información pero no modificarla."; } ViewBag.PreviousPage = Request.QueryString["SPHostUrl"]; if (result.DBModel.ResponseDate == new DateTime(1900, 1, 1)) { result.DBModel.ResponseDate = DateTime.Today; } return(View(result)); }
public async Task <ActionResult> DoInbox(NewInboxViewModel model) { var statusList = new List <SelectListItem>(); statusList.Add(new SelectListItem() { Text = "Asignar", Value = "Asignado" }); statusList.Add(new SelectListItem() { Text = "Atender", Value = "Atendido" }); ViewBag.StatusList = new SelectList(statusList, "Value", "Text"); var currentCulture = System.Threading.Thread.CurrentThread.CurrentCulture; if (!string.IsNullOrEmpty(Request.QueryString["SPLanguage"])) { currentCulture = new CultureInfo(Request.QueryString["SPLanguage"]); } try { var spContext = SharePointContextProvider.Current.GetSharePointContext(HttpContext); using (var clientContext = spContext.CreateUserClientContextForSPHost()) { if (clientContext != null) { var spUser = clientContext.Web.CurrentUser; clientContext.Load(spUser, user => user.Title, user => user.LoginName); clientContext.ExecuteQuery(); model.DBModel.AssignedByLogin = spUser.LoginName; model.DBModel.AssignedByName = spUser.Title; ViewBag.UserName = spUser.Title; } } var tmpAssgnTo = JsonConvert.DeserializeObject <List <Models.PeoplePickerUser> >(model.DBModel.AssignedToControl); model.DBModel.AssignedToLogin = tmpAssgnTo[0].Login; model.DBModel.AssignedToName = tmpAssgnTo[0].Name; var ccList = new List <string>(); var tmpCCLoginStr = string.Empty; var tmpCCNameStr = string.Empty; if (!string.IsNullOrEmpty(model.DBModel.AssignedToCCControl)) { var tmpAssgnToCC = JsonConvert.DeserializeObject <List <Models.PeoplePickerUser> >(model.DBModel.AssignedToCCControl); for (var i = 0; i < tmpAssgnToCC.Count; i++) { ccList.Add(tmpAssgnToCC[i].Email); tmpCCLoginStr += tmpAssgnToCC[i].Login + "/"; tmpCCNameStr += tmpAssgnToCC[i].Name + ", "; } } model.DBModel.AssignedToCCLogin = tmpCCLoginStr; model.DBModel.AssignedToCCName = tmpCCNameStr; model.DBModel.AssignmentDate = DateTime.Now; var difDays = model.DBModel.ResponseDate - DateTime.Today; if (difDays.Days > 7) { var calcDays = Math.Ceiling(difDays.Days * 0.6); model.DBModel.FirstReminderDate = DateTime.Today.AddDays(calcDays); calcDays = Math.Ceiling(difDays.Days * 0.8); model.DBModel.SecondReminderDate = DateTime.Today.AddDays(calcDays); } else { model.DBModel.FirstReminderDate = DateTime.Today; var calcDays = Math.Ceiling(difDays.Days * 0.1); model.DBModel.SecondReminderDate = DateTime.Today.AddDays(calcDays); } var sbAttachments = new System.Text.StringBuilder(); if (!string.IsNullOrEmpty(model.DBModel.Attachment1Url)) { var arrAttachments = model.DBModel.Attachment1Url.Split(';'); foreach (var att in arrAttachments) { if (!string.IsNullOrEmpty(att)) { sbAttachments.AppendFormat("- <a href='{0}'>{1}</a><br/>", att, att.Substring(att.LastIndexOf("/") + 1)); } } } var tmpSave = await helper.PostInMailbox(model.DBModel, string.Empty); var strBody = string.Format("<p>Estimado <b>{0}</b>,</p><p>Se le ha asignado el documento <b>{1}</b> de <b>Correspondencia Entrante</b> en la Intranet.<br/></p><p>Considerar las siguientes observaciones:<br/>{2}</p><p>Para ver el documento escaneado haga clic en los siguientes enlaces:<br/>{3} <br/>Para ingresar al portal haga <a href='https://icpower.sharepoint.com'>clic aquí</a></p><p>Atentamente,<br/></p><p><b>Intranet IC Power</b></p>", model.DBModel.AssignedToName, model.DBModel.DocumentSubject, model.DBModel.Annotations, sbAttachments.ToString()); if (model.DBModel.DocumentStatus == "Atendido") { strBody = string.Format("<p>Estimados,</p><p>El documento <b>{0}</b> de <b>Correspondencia Entrante</b> ha sido atendido en la Intranet.<br/></p><p>Observaciones: <br/><span style='font-style:italic'>{1}</span></p><p>Atentamente,<br/></p><p><b>Intranet IC Power</b></p>", model.DBModel.DocumentSubject, model.DBModel.Annotations); } new Utils.EmailHelper().SendEmail("*****@*****.**", tmpAssgnTo[0].Email, ccList.ToArray(), "Intranet - " + model.DBModel.DocumentCode + " - " + model.DBModel.DocumentSubject, strBody); model.ConfirmMessage = "Los cambios se grabaron con éxito. Para continuar haga clic en Cerrar."; } catch (Exception ex) { model.ErrorMessage = "Ocurrió un error al grabar su información. Por favor vuelva a intentar."; } return(View(model)); }
public async Task <ActionResult> NewInbox(NewInboxViewModel model) { var companyList = new List <SelectListItem>(); companyList.Add(new SelectListItem() { Text = "Kallpa Generación", Value = "CE Kallpa Generación" }); companyList.Add(new SelectListItem() { Text = "Cerro del Aguila", Value = "CE Cerro del Aguila" }); companyList.Add(new SelectListItem() { Text = "Samay I", Value = "CE Samay" }); companyList.Add(new SelectListItem() { Text = "Hidro Chilia", Value = "CE Hidro Chilia" }); ViewBag.CompanyList = new SelectList(companyList, "Value", "Text"); var departmentList = new List <SelectListItem>(); departmentList.Add(new SelectListItem() { Text = "Todos", Value = "Todos" }); departmentList.Add(new SelectListItem() { Text = "Administración", Value = "Administración" }); departmentList.Add(new SelectListItem() { Text = "Contraloría", Value = "Contraloría" }); departmentList.Add(new SelectListItem() { Text = "Relaciones Comunitarias", Value = "Relaciones Comunitarias" }); ViewBag.DepartmentList = new SelectList(departmentList, "Value", "Text"); var spContext = SharePointContextProvider.Current.GetSharePointContext(HttpContext); using (var clientContext = spContext.CreateUserClientContextForSPHost()) { if (clientContext != null) { var spUser = clientContext.Web.CurrentUser; clientContext.Load(spUser, user => user.Title, user => user.LoginName, user => user.Email); clientContext.ExecuteQuery(); model.DBModel.AssignedByLogin = spUser.LoginName; model.DBModel.AssignedByName = spUser.Title; } } try { model.DBModel.DocumentCode = await helper.GetDocumentCode(model.DBModel.CompanyName, model.DBModel.DepartmentName, DateTime.Today.Year); if (string.IsNullOrEmpty(model.DBModel.DocumentCode)) { model.WarningMessage = "No se encuentra registrado un correlativo. Por favor, contacte al administrador"; return(View(model)); } var tmpAssgnTo = JsonConvert.DeserializeObject <List <Models.PeoplePickerUser> >(model.DBModel.AssignedToControl); model.DBModel.AssignedToLogin = tmpAssgnTo[0].Login; model.DBModel.AssignedToName = tmpAssgnTo[0].Name; var ccList = new List <string>(); var tmpCCLoginStr = string.Empty; var tmpCCNameStr = string.Empty; if (!string.IsNullOrEmpty(model.DBModel.AssignedToCCControl)) { var tmpAssgnToCC = JsonConvert.DeserializeObject <List <Models.PeoplePickerUser> >(model.DBModel.AssignedToCCControl); for (var i = 0; i < tmpAssgnToCC.Count; i++) { ccList.Add(tmpAssgnToCC[i].Email); tmpCCLoginStr += tmpAssgnToCC[i].Login + "/"; tmpCCNameStr += tmpAssgnToCC[i].Name + ", "; } } model.DBModel.AssignedToCCLogin = tmpCCLoginStr; model.DBModel.AssignedToCCName = tmpCCNameStr; var spHelper = new SPHelper(); var spFolder = spHelper.CreateSPFolder(spContext, "CorEnt", model.DBModel.DocumentCode); var sbAttMail = new System.Text.StringBuilder(); var sbAttModel = new System.Text.StringBuilder(); var j = 1; foreach (var anAttachment in model.Attachments) { var tmpUrl = spHelper.UploadSPFile(spContext, anAttachment, spFolder, model.DBModel.SiteUrl, "ATT" + j.ToString() + "-"); sbAttModel.AppendFormat("{0};", tmpUrl); sbAttMail.AppendFormat("- <a href='{0}'>{1}</a><br/>", tmpUrl, tmpUrl.Substring(tmpUrl.LastIndexOf("/") + 1)); j++; } model.DBModel.Attachment1Url = sbAttModel.ToString(); model.DBModel.DocumentDate = DateTime.Now; model.DBModel.DocumentStatus = "Asignado"; model.DBModel.FirstReminderDate = DateTime.Today; model.DBModel.SecondReminderDate = DateTime.Today; model.DBModel.ResponseDate = DateTime.Today.AddDays(3); model.DBModel.AssignmentDate = DateTime.Now; var tmpSave = await helper.PostInMailbox(model.DBModel, string.Empty); var strBody = string.Format("<p>Estimado <b>{0}</b>,</p><p>Se le ha asignado el documento <b>{1}</b> de <b>Correspondencia Entrante</b> en la Intranet.<br/></p><p>Para ver el documento escaneado haga clic en los siguientes enlaces:<br/>{2} <br/>Para ingresar al portal haga <a href='https://icpower.sharepoint.com'>clic aquí</a></p><p>Atentamente,<br/></p><p><b>Intranet IC Power</b></p>", model.DBModel.AssignedToName, model.DBModel.DocumentSubject, sbAttMail.ToString()); new Utils.EmailHelper().SendEmail("*****@*****.**", tmpAssgnTo[0].Email, ccList.ToArray(), "Intranet - " + model.DBModel.DocumentCode + " - " + model.DBModel.DocumentSubject, strBody); model.ConfirmMessage = "Se ha guardado el documento " + model.DBModel.DocumentCode + ". Para continuar haga clic en Cerrar."; } catch (Exception ex) { log.Error("NewInbox - " + ex.ToString()); model.ErrorMessage = "Ocurrió un error al guardar su información. Por favor cierre la ventana e intente de nuevo."; } return(View(model)); }
public ActionResult NewInbox() { var companyList = new List <SelectListItem>(); companyList.Add(new SelectListItem() { Text = "Kallpa Generación", Value = "CE Kallpa Generación" }); companyList.Add(new SelectListItem() { Text = "Cerro del Aguila", Value = "CE Cerro del Aguila" }); companyList.Add(new SelectListItem() { Text = "Samay I", Value = "CE Samay" }); companyList.Add(new SelectListItem() { Text = "Hidro Chilia", Value = "CE Hidro Chilia" }); ViewBag.CompanyList = new SelectList(companyList, "Value", "Text"); var departmentList = new List <SelectListItem>(); departmentList.Add(new SelectListItem() { Text = "Todos", Value = "Todos" }); departmentList.Add(new SelectListItem() { Text = "Administración", Value = "Administración" }); departmentList.Add(new SelectListItem() { Text = "Contraloría", Value = "Contraloría" }); departmentList.Add(new SelectListItem() { Text = "Relaciones Comunitarias", Value = "Relaciones Comunitarias" }); ViewBag.DepartmentList = new SelectList(departmentList, "Value", "Text"); var result = new NewInboxViewModel(); if (!string.IsNullOrEmpty(Request.QueryString["SPHostUrl"])) { result.DBModel.SiteUrl = Request.QueryString["SPHostUrl"]; } var spContext = SharePointContextProvider.Current.GetSharePointContext(HttpContext); using (var clientContext = spContext.CreateUserClientContextForSPHost()) { if (clientContext != null) { var spUser = clientContext.Web.CurrentUser; clientContext.Load(spUser, user => user.Title, user => user.LoginName, user => user.Email); clientContext.ExecuteQuery(); result.DBModel.AssignedByLogin = spUser.LoginName; result.DBModel.AssignedByName = spUser.Title; } } result.DBModel.ResponseDate = DateTime.Today; return(View(result)); }