public ActionResult IncomingList()
        {
            var strLogin  = string.Empty;
            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();
                    strLogin         = spUser.LoginName;
                    ViewBag.UserName = spUser.Title;
                }
            }
            var helper = new Models.IntranetAppsDBHelper();
            var result = new IncomingListViewModel();

            try
            {
                result.MailboxDocumentList = helper.GetMyMailboxDocuments(strLogin);
            }
            catch (Exception ex)
            {
                result.ErrorMessage = "Ocurrió un error al obtener los movimientos del documento. Por favor regrese al portal e intente nuevamente.";
            }

            return(View(result));
        }
        public ActionResult DoIncoming(DoIncomingViewModel document)
        {
            var result = new DoIncomingViewModel();

            var statusList = new List <SelectListItem>();

            statusList.Add(new SelectListItem()
            {
                Text = "Asignar", Value = "Asignar"
            });
            statusList.Add(new SelectListItem()
            {
                Text = "Atender", Value = "Atender"
            });
            ViewBag.StatusList = new SelectList(statusList, "Value", "Text");
            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();

                        document.AssignedBy = string.Format("{0}/{1}", spUser.LoginName, spUser.Title);
                        ViewBag.UserName    = spUser.Title;
                    }
                }

                var helper = new Models.IntranetAppsDBHelper();
                helper.SaveIncomingMailboxUpdate(document);

                var tmpAssgnTo   = Newtonsoft.Json.JsonConvert.DeserializeObject <List <Models.PeoplePickerUser> >(document.AssignedTo);
                var tmpAssgnToCC = Newtonsoft.Json.JsonConvert.DeserializeObject <List <Models.PeoplePickerUser> >(document.AssignedToCC);
                var ccList       = new List <string>();
                for (var i = 0; i < tmpAssgnToCC.Count; i++)
                {
                    ccList.Add(tmpAssgnToCC[i].Email);
                }
                var strBody = string.Format("<p>Estimado <b>{0}</b>,</p><p>Se le ha asignado el documento <a href='{1}'>{2}</a> de <b>Correspondencia Interna</b> en la Intranet.<br/></p><p>Referente a: <br/><span style='font-style:italic'>{3}</span></p><p>Atentamente,<br/></p><p><b>Intranet IC Power</b></p>", tmpAssgnTo[0].Name, document.DocumentURL, document.DocumentSubject, document.NewAnnotations);
                new Utils.EmailHelper().SendEmail("*****@*****.**", tmpAssgnTo[0].Email, ccList.ToArray(), "Intranet - Correspondencia Entrante", strBody);
                result.ConfirmMessage = "Los cambios se grabaron con éxito. Se le redirigirá pronto al portal.";
            }
            catch (Exception ex) { result.ErrorMessage = "Ocurrió un error al grabar los cambios. Por favor regrese al portal e intente nuevamente."; }
            ViewBag.PreviousPage = "https://icpower.sharepoint.com";
            return(View(result));
        }
        public ActionResult MailboxDetails(MailboxDetailsViewModel inModel)
        {
            var helper = new Models.IntranetAppsDBHelper();
            var result = new MailboxDetailsViewModel();

            try
            {
                result.Details = helper.GetMyMailboxDetails(inModel.DocumentId);
            }
            catch (Exception ex)
            {
                result.ErrorMessage = "Ocurrió un error al obtener los movimientos del documento. Por favor regrese al portal e intente nuevamente.";
            }

            return(PartialView(result));
        }
Exemple #4
0
        public ActionResult Assign(PendingDocumentViewModel pendingDoc)
        {
            if (!string.IsNullOrEmpty(Request.QueryString["SPHostUrl"]))
            {
                pendingDoc.SiteUrl = Request.QueryString["SPHostUrl"];
            }
            if (!string.IsNullOrEmpty(Request.QueryString["SPListId"]))
            {
                pendingDoc.DocLibrary = Request.QueryString["SPListId"];
            }
            if (!string.IsNullOrEmpty(Request.QueryString["SPListItemId"]))
            {
                pendingDoc.ListItemId = Convert.ToInt32(Request.QueryString["SPListItemId"]);
            }
            var spContext = SharePointContextProvider.Current.GetSharePointContext(HttpContext);

            using (var clientContext = spContext.CreateUserClientContextForSPHost())
            {
                if (clientContext != null)
                {
                    ListItem spItem = clientContext.Web.Lists.GetById(new Guid(pendingDoc.DocLibrary)).GetItemById(pendingDoc.ListItemId);
                    clientContext.Load(spItem, item => item.Client_Title, item => item.File);
                    var spUser = clientContext.Web.CurrentUser;
                    clientContext.Load(spUser, user => user.Title, user => user.LoginName);
                    var spWeb = clientContext.Web;
                    clientContext.Load(spWeb, web => web.Title);
                    var spLibrary = clientContext.Web.Lists.GetById(new Guid(pendingDoc.DocLibrary));
                    clientContext.Load(spLibrary, library => library.Title);
                    clientContext.ExecuteQuery();
                    pendingDoc.Title       = string.IsNullOrEmpty(spItem.File.Title) ? spItem.File.Name : spItem.File.Title;
                    pendingDoc.DocumentURL = spItem.File.LinkingUrl;

                    pendingDoc.AssignedBy   = string.Format("{0}/{1}", spUser.LoginName, spUser.Title);
                    ViewBag.UserName        = spUser.Title;
                    ViewBag.WebTitle        = spWeb.Title;
                    ViewBag.PreviousPage    = clientContext.Url;
                    ViewBag.DocLibraryTitle = spLibrary.Title;
                }
            }
            pendingDoc.AssignmentDate = DateTime.Now;
            var helper = new Models.IntranetAppsDBHelper();

            if (pendingDoc.AssignmentId == 0) // first page load
            {
                var tmp = helper.GetDocAssignment(pendingDoc);
                if (tmp.AssignmentId == 0)
                {
                    pendingDoc.DueTo      = DateTime.Today;
                    pendingDoc.IsModified = false;
                    pendingDoc            = helper.SaveDocAssignment(pendingDoc);
                }
                else
                {
                    var tmpTitle      = pendingDoc.Title;
                    var tmpURL        = pendingDoc.DocumentURL;
                    var tmpAssignedBy = pendingDoc.AssignedBy;
                    pendingDoc                = tmp;
                    pendingDoc.Title          = tmpTitle != tmp.Title ? tmpTitle : tmp.Title;
                    pendingDoc.DocumentURL    = tmpURL != tmp.DocumentURL ? tmpURL : tmp.DocumentURL;
                    pendingDoc.AssignedBy     = tmpAssignedBy != tmp.AssignedBy ? tmpAssignedBy : tmp.AssignedBy;
                    pendingDoc.WarningMessage = "El documento se encuentra asignado. Si continua va a sobreescribir la asignación actual";
                }
            }
            else // submit form
            {
                pendingDoc.IsModified = true;
                try
                {
                    pendingDoc = helper.SaveDocAssignment(pendingDoc);
                    var tmpAssgnTo = Newtonsoft.Json.JsonConvert.DeserializeObject <List <Models.PeoplePickerUser> >(pendingDoc.AssignedTo);
                    var strBody    = string.Format("<p>Estimado <b>{0}</b>,</p><br/><p>Se le ha asignado el documento <a href='{1}'>{2}</a> en la Intranet cuyo vencimiento es el <b>{3:dd/MM/yyyy}</b>.<br/></p><p>Atentamente,<br/></p><p><b>Intranet IC Power</b></p>", tmpAssgnTo[0].Name, pendingDoc.DocumentURL, pendingDoc.Title, pendingDoc.DueTo);
                    new Utils.EmailHelper().SendEmail("*****@*****.**", tmpAssgnTo[0].Email, null, "Intranet - Documento Asignado", strBody);
                    pendingDoc.ConfirmMessage = "Los cambios se grabaron con éxito. Se le redirigirá pronto al portal.";
                }
                catch (Exception ex) { pendingDoc.ErrorMessage = "Ocurrió un error al grabar los cambios. Por favor regrese al portal e intente nuevamente."; }
            }

            return(View(pendingDoc));
        }