示例#1
0
 private static void RedirectToAttachmentManager(EditContactHelper helper, OwaContext owaContext, PreFormActionResponse response)
 {
     helper.Contact.Load();
     response.ApplicationElement = ApplicationElement.Dialog;
     response.Type = "Attach";
     response.AddParameter("id", helper.Contact.Id.ObjectId.ToBase64String());
 }
示例#2
0
 private static void RedirectToReadContact(EditContactHelper helper, OwaContext owaContext, PreFormActionResponse response)
 {
     helper.Contact.Load();
     response.ApplicationElement = ApplicationElement.Item;
     response.Type = "IPM.Contact";
     response.AddParameter("id", helper.Contact.Id.ObjectId.ToBase64String());
 }
示例#3
0
 private static void RedirectToCompose(EditContactHelper helper, OwaContext owaContext, PreFormActionResponse response, string errorMessage)
 {
     if (!string.IsNullOrEmpty(errorMessage))
     {
         owaContext[OwaContextProperty.InfobarMessage] = InfobarMessage.CreateText(errorMessage, InfobarMessageType.Error);
     }
     helper.Contact.Load();
     response.ApplicationElement = ApplicationElement.Item;
     response.Type   = "IPM.Contact";
     response.Action = "Open";
     response.State  = "Draft";
     if (helper.Contact.Id != null)
     {
         response.AddParameter("id", helper.Contact.Id.ObjectId.ToBase64String());
     }
 }
示例#4
0
        public PreFormActionResponse Execute(OwaContext owaContext, out ApplicationElement applicationElement, out string type, out string state, out string action)
        {
            if (owaContext == null)
            {
                throw new ArgumentNullException("owaContext");
            }
            applicationElement = ApplicationElement.NotSet;
            type   = string.Empty;
            state  = string.Empty;
            action = string.Empty;
            HttpContext httpContext = owaContext.HttpContext;
            HttpRequest request     = httpContext.Request;
            UserContext userContext = owaContext.UserContext;

            if (!Utilities.IsPostRequest(request))
            {
                return(userContext.LastClientViewState.ToPreFormActionResponse());
            }
            PreFormActionResponse preFormActionResponse = new PreFormActionResponse();
            string strA = string.Empty;

            if (owaContext.FormsRegistryContext.Action != null)
            {
                strA = owaContext.FormsRegistryContext.Action;
            }
            string queryStringParameter = Utilities.GetQueryStringParameter(request, "pa", false);

            using (EditContactHelper editContactHelper = new EditContactHelper(userContext, request, true))
            {
                SaveResult saveResult = SaveResult.Success;
                bool       flag       = false;
                try
                {
                    saveResult = editContactHelper.SaveContact();
                }
                catch (QuotaExceededException)
                {
                    throw;
                }
                catch (StoragePermanentException)
                {
                    flag = true;
                }
                catch (StorageTransientException)
                {
                    flag = true;
                }
                if (flag)
                {
                    EditContactPreFormAction.RedirectToCompose(editContactHelper, owaContext, preFormActionResponse, LocalizedStrings.GetNonEncoded(1242051590));
                }
                else if (saveResult == SaveResult.IrresolvableConflict)
                {
                    EditContactPreFormAction.RedirectToCompose(editContactHelper, owaContext, preFormActionResponse, LocalizedStrings.GetNonEncoded(-482397486));
                }
                else if (string.Compare(strA, "Attach", StringComparison.OrdinalIgnoreCase) == 0)
                {
                    EditContactPreFormAction.RedirectToAttachmentManager(editContactHelper, owaContext, preFormActionResponse);
                }
                else if (string.Compare(queryStringParameter, "Open", StringComparison.OrdinalIgnoreCase) == 0)
                {
                    EditContactPreFormAction.RedirectToReadContact(editContactHelper, owaContext, preFormActionResponse);
                }
                else
                {
                    preFormActionResponse = userContext.LastClientViewState.ToPreFormActionResponse();
                }
            }
            return(preFormActionResponse);
        }