)>}]
شركة التطبيقات المتكاملة لتصميم وبرمجة البرمجيات الخاصة ش.ش.و.
Integrated Applications Programming Company
Home » Code Library » Mail (Ia.Ftn.Wa.Models.Provision.Access)

Public general use code classes and xml files that we've compiled and used over the years:

    1: using System.Net;
    2:  
    3: namespace Ia.Ftn.Wa.Models.Provision.Access
    4: {
    5:     ////////////////////////////////////////////////////////////////////////////
    6:  
    7:     /// <summary publish="true">
    8:     ///
    9:     /// </summary>
   10:     /// 
   11:     /// <remarks> 
   12:     /// Copyright © 2006-2025 Jasem Y. Al-Shamlan (info@ia.com.kw), Integrated Applications - Kuwait. All Rights Reserved.
   13:     /// </remarks> 
   14:     public static class Mail
   15:     {
   16:         private static Ia.Ftn.Cl.Models.Business.Mail mail;
   17:  
   18:         ////////////////////////////////////////////////////////////////////////////
   19:  
   20:         /// <summary>
   21:         ///
   22:         /// </summary>
   23:         public static void ViewModel(ref Ia.Ftn.Wa.Models.Provision.Access.MailViewModel mailViewModel)
   24:         {
   25:             //Read();
   26:  
   27:             //Page_ViewModel();
   28:         }
   29:  
   30:         ////////////////////////////////////////////////////////////////////////////
   31:  
   32:         /// <summary>
   33:         ///
   34:         /// </summary>
   35:         public static void Post(ref Ia.Ftn.Wa.Models.Provision.Access.MailViewModel mailViewModel, string commandName)
   36:         {
   37:         }
   38:  
   39:         /*
   40:         ////////////////////////////////////////////////////////////////////////////
   41: 
   42:         /// <summary>
   43:         ///
   44:         /// </summary>
   45:         private static void CreateMailbox(object sender, EventArgs e)
   46:         {
   47:             bool b;
   48:             string result, mailboxName;
   49: 
   50:             mailboxName = WebUtility.HtmlDecode(createMailboxTextBox.Text);
   51: 
   52:             if (Ia.Ftn.Cl.Models.Business.Authority.StaffCanCreateReadUpdateAccessMail(Ia.Ftn.Cl.Models.Business.Authority.PersistentStorageFunction.Update, staff))
   53:             {
   54:                 try
   55:                 {
   56:                     b = mail.AddFolder(mailboxName, out result);
   57: 
   58:                     createMailboxTextBox.Text = null;
   59: 
   60:                     if (b)
   61:                     {
   62:                         resultLabel.Text = "Success: " + result;
   63:                         resultLabel.CssClass = "success";
   64:                     }
   65:                     else
   66:                     {
   67:                         resultLabel.Text = "Error: " + result;
   68:                         resultLabel.CssClass = "error";
   69:                     }
   70:                 }
   71:                 catch (Exception ex)
   72:                 {
   73:                     resultLabel.Text = "Error: Could not create the mailbox. " + WebUtility.HtmlDecode(ex.Message);
   74:                     resultLabel.CssClass = "error";
   75:                 }
   76:             }
   77:             else
   78:             {
   79:                 resultLabel.Text = "You are not authorized to modify this value (لست مخولاً بتعديل هذه القيمة).";
   80:                 resultLabel.CssClass = "error";
   81:             }
   82:         }
   83: 
   84:         ////////////////////////////////////////////////////////////////////////////
   85: 
   86:         /// <summary>
   87:         ///
   88:         /// </summary>
   89:         private static void DeleteMailbox(object sender, EventArgs e)
   90:         {
   91:             bool b;
   92:             string result, mailboxName;
   93: 
   94:             if (Ia.Ftn.Cl.Models.Business.Authority.StaffCanCreateReadUpdateAccessMail(Ia.Ftn.Cl.Models.Business.Authority.PersistentStorageFunction.Update, staff))
   95:             {
   96:                 if (mailboxDropDownList.SelectedIndex != -1)
   97:                 {
   98:                     try
   99:                     {
  100:                         mailboxName = mailboxDropDownList.SelectedValue;
  101: 
  102:                         b = mail.DeleteMailbox(mailboxName, out result);
  103: 
  104:                         if (b)
  105:                         {
  106:                             resultLabel.Text = "Success: " + result;
  107:                             resultLabel.CssClass = "success";
  108:                         }
  109:                         else
  110:                         {
  111:                             resultLabel.Text = "Error: " + result;
  112:                             resultLabel.CssClass = "error";
  113:                         }
  114:                     }
  115:                     catch (Exception ex)
  116:                     {
  117:                         resultLabel.Text = "Error: Could not delete the mailbox. " + WebUtility.HtmlDecode(ex.Message);
  118:                         resultLabel.CssClass = "error";
  119:                     }
  120:                 }
  121:             }
  122:             else
  123:             {
  124:                 resultLabel.Text = "You are not authorized to modify this value (لست مخولاً بتعديل هذه القيمة).";
  125:                 resultLabel.CssClass = "error";
  126:             }
  127:         }
  128: 
  129:         ////////////////////////////////////////////////////////////////////////////
  130:         ////////////////////////////////////////////////////////////////////////////
  131: 
  132:         /// <summary>
  133:         ///
  134:         /// </summary>
  135:         private static void CreateRegex(object sender, EventArgs e)
  136:         {
  137:             bool b;
  138:             string result, mailboxName, regex;
  139: 
  140:             if (Ia.Ftn.Cl.Models.Business.Authority.StaffCanCreateReadUpdateAccessMail(Ia.Ftn.Cl.Models.Business.Authority.PersistentStorageFunction.Update, staff))
  141:             {
  142:                 mailboxName = mailboxDropDownList.SelectedValue;
  143: 
  144:                 regex = WebUtility.HtmlDecode(createRegexTextBox.Text);
  145: 
  146:                 try
  147:                 {
  148:                     b = mail.AddRegex(mailboxName, regex, out result);
  149: 
  150:                     createRegexTextBox.Text = null;
  151: 
  152:                     if (b)
  153:                     {
  154:                         resultLabel.Text = "Success: " + result;
  155:                         resultLabel.CssClass = "success";
  156:                     }
  157:                     else
  158:                     {
  159:                         resultLabel.Text = "Error: " + result;
  160:                         resultLabel.CssClass = "error";
  161:                     }
  162:                 }
  163:                 catch (Exception ex)
  164:                 {
  165:                     resultLabel.Text = "Error: Could not create the regex. " + WebUtility.HtmlDecode(ex.Message);
  166:                     resultLabel.CssClass = "error";
  167:                 }
  168:             }
  169:             else
  170:             {
  171:                 resultLabel.Text = "You are not authorized to modify this value (لست مخولاً بتعديل هذه القيمة).";
  172:                 resultLabel.CssClass = "error";
  173:             }
  174:         }
  175: 
  176:         ////////////////////////////////////////////////////////////////////////////
  177: 
  178:         /// <summary>
  179:         ///
  180:         /// </summary>
  181:         private static void DeleteRegex(object sender, EventArgs e)
  182:         {
  183:             bool b;
  184:             string result, regexName;
  185: 
  186:             if (Ia.Ftn.Cl.Models.Business.Authority.StaffCanCreateReadUpdateAccessMail(Ia.Ftn.Cl.Models.Business.Authority.PersistentStorageFunction.Update, staff))
  187:             {
  188:                 if (regexDropDownList.SelectedIndex != -1)
  189:                 {
  190:                     try
  191:                     {
  192:                         regexName = regexDropDownList.SelectedValue;
  193: 
  194:                         b = mail.DeleteRegex(regexName, out result);
  195: 
  196:                         if (b)
  197:                         {
  198:                             resultLabel.Text = "Success: " + result;
  199:                             resultLabel.CssClass = "success";
  200:                         }
  201:                         else
  202:                         {
  203:                             resultLabel.Text = "Error: " + result;
  204:                             resultLabel.CssClass = "error";
  205:                         }
  206:                     }
  207:                     catch (Exception ex)
  208:                     {
  209:                         resultLabel.Text = "Error: Could not delete the regex. " + WebUtility.HtmlDecode(ex.Message);
  210:                         resultLabel.CssClass = "error";
  211:                     }
  212:                 }
  213:             }
  214:             else
  215:             {
  216:                 resultLabel.Text = "You are not authorized to modify this value (لست مخولاً بتعديل هذه القيمة).";
  217:                 resultLabel.CssClass = "error";
  218:             }
  219:         }
  220: 
  221:         ////////////////////////////////////////////////////////////////////////////
  222:         ////////////////////////////////////////////////////////////////////////////
  223: 
  224:         /// <summary>
  225:         ///
  226:         /// </summary>
  227:         private static void Save(object sender, EventArgs e)
  228:         {
  229:             bool b;
  230:             int mailboxCheckFrequencyInMinutes;
  231:             string s;//, result;
  232:             UriHostNameType uriHostNameType;
  233: 
  234:             if (Ia.Ftn.Cl.Models.Business.Authority.StaffCanCreateReadUpdateAccessMail(Ia.Ftn.Cl.Models.Business.Authority.PersistentStorageFunction.Update, staff))
  235:             {
  236:                 mail.IsActive = isActiveCheckBox.Checked;
  237:                 mail.IsActiveDuringWorkingHoursOnly = isActiveDuringWorkingHoursOnlyCheckBox.Checked;
  238: 
  239:                 b = int.TryParse(mailboxCheckFrequencyInMinutesTextBox.Text, out mailboxCheckFrequencyInMinutes);
  240: 
  241:                 if (b)
  242:                 {
  243:                     if (mailboxCheckFrequencyInMinutes >= 5) // minimum five minutes
  244:                     {
  245:                         mail.MailboxCheckFrequencyInMinutes = mailboxCheckFrequencyInMinutes;
  246: 
  247:                         uriHostNameType = Uri.CheckHostName(hostTextBox.Text);
  248: 
  249:                         if (uriHostNameType != UriHostNameType.Unknown)
  250:                         {
  251:                             mail.Host = WebUtility.HtmlDecode(hostTextBox.Text);
  252: 
  253:                             if (Ia.Cl.Models.Default.IsEmail(userNameTextBox.Text))
  254:                             {
  255:                                 mail.UserName = WebUtility.HtmlDecode(userNameTextBox.Text);
  256: 
  257:                                 if (passwordTextBox.Text.Length != 0)
  258:                                 {
  259:                                     mail.Password = WebUtility.HtmlDecode(passwordTextBox.Text);
  260: 
  261:                                     mail.EnabledSsl = true;  // for gmail
  262: 
  263:                                     s = mail.SerializeToString();
  264: 
  265:                                     Ia.Ftn.Cl.Models.Data.Miscellaneous.CreateOrUpdate("MailboxAndEmailMovingManager", s);
  266:                                 }
  267:                                 else
  268:                                 {
  269:                                     resultLabel.Text = "Error: The password '" + passwordTextBox.Text + "' is not valid. ";
  270:                                     resultLabel.CssClass = "error";
  271:                                 }
  272:                             }
  273:                             else
  274:                             {
  275:                                 resultLabel.Text = "Error: The user name '" + userNameTextBox.Text + "' is not a valid email. ";
  276:                                 resultLabel.CssClass = "error";
  277:                             }
  278:                         }
  279:                         else
  280:                         {
  281:                             resultLabel.Text = "Error: The host name '" + hostTextBox.Text + "' is invalid. ";
  282:                             resultLabel.CssClass = "error";
  283:                         }
  284:                     }
  285:                     else
  286:                     {
  287:                         resultLabel.Text = "Error: Mailbox check frequency in minutes value should be at least five minutes. ";
  288:                         resultLabel.CssClass = "error";
  289:                     }
  290:                 }
  291:                 else
  292:                 {
  293:                     resultLabel.Text = "Error: Mailbox check frequency in minutes values is not a valid integer. ";
  294:                     resultLabel.CssClass = "error";
  295:                 }
  296:             }
  297:             else
  298:             {
  299:                 resultLabel.Text = "You are not authorized to modify this value (لست مخولاً بتعديل هذه القيمة).";
  300:                 resultLabel.CssClass = "error";
  301:             }
  302:         }
  303: 
  304:         ////////////////////////////////////////////////////////////////////////////
  305: 
  306:         /// <summary>
  307:         ///
  308:         /// </summary>
  309:         private static void Read()
  310:         {
  311:             string s;
  312: 
  313:             s = Ia.Ftn.Cl.Models.Data.Miscellaneous.Read("MailboxAndEmailMovingManager");
  314: 
  315:             if (s != null) mail = Ia.Ftn.Cl.Models.Business.Mail.DeserializeFromString(s);
  316:             else mail = new Ia.Ftn.Cl.Models.Business.Mail();
  317: 
  318:             //resultLabel.Text = "Success: Object read. ";
  319:             //resultLabel.CssClass = "success";
  320:         }
  321: 
  322:         ////////////////////////////////////////////////////////////////////////////
  323: 
  324:         /// <summary>
  325:         ///
  326:         /// </summary>
  327:         private static void Page_ViewModel()
  328:         {
  329:             mailboxDropDownList.SelectedIndex = -1;
  330:             mailboxDropDownList.DataSource = mail.MailboxList;
  331:             mailboxDropDownList.DataBind();
  332: 
  333:             regexDropDownList.SelectedIndex = -1;
  334:             regexDropDownList.DataSource = mail.MailRegexToMailboxList;
  335:             regexDropDownList.DataBind();
  336: 
  337:             isActiveCheckBox.Checked = mail.IsActive;
  338:             isActiveDuringWorkingHoursOnlyCheckBox.Checked = mail.IsActiveDuringWorkingHoursOnly;
  339:             mailboxCheckFrequencyInMinutesTextBox.Text = mail.MailboxCheckFrequencyInMinutes.ToString();
  340:             hostTextBox.Text = mail.Host;
  341:             userNameTextBox.Text = mail.UserName;
  342: 
  343:             passwordTextBox.Text = mail.Password;
  344:             passwordTextBox.Attributes.Add("value", mail.Password);
  345: 
  346:             if (mailboxDropDownList.Items.Count == 0)
  347:             {
  348:                 mailboxDropDownList.Enabled = false;
  349:                 deleteMailboxButton.Enabled = false;
  350:                 deleteRegexButton.Enabled = false;
  351:                 createRegexButton.Enabled = false;
  352:             }
  353:             else
  354:             {
  355:                 mailboxDropDownList.Enabled = true;
  356:                 deleteMailboxButton.Enabled = true;
  357: 
  358:                 if (regexDropDownList.Items.Count == 0) deleteRegexButton.Enabled = false;
  359:                 else deleteRegexButton.Enabled = true;
  360: 
  361:                 createRegexButton.Enabled = true;
  362:             }
  363: 
  364:             if (!Ia.Ftn.Cl.Models.Business.Authority.StaffCanCreateReadUpdateAccessMail(Ia.Ftn.Cl.Models.Business.Authority.PersistentStorageFunction.Update, staff))
  365:             {
  366:                 isActiveCheckBox.Enabled = false;
  367:                 isActiveDuringWorkingHoursOnlyCheckBox.Enabled = false;
  368:                 mailboxCheckFrequencyInMinutesTextBox.Enabled = false;
  369:                 hostTextBox.Enabled = false;
  370:                 userNameTextBox.Enabled = false;
  371:                 passwordTextBox.Enabled = false;
  372:                 createMailboxTextBox.Enabled = false;
  373:                 mailboxDropDownList.Enabled = false;
  374:                 createRegexTextBox.Enabled = false;
  375:                 regexDropDownList.Enabled = false;
  376:                 saveButton.Enabled = false;
  377:             }
  378:         }
  379:         */
  380:  
  381:         ////////////////////////////////////////////////////////////////////////////
  382:         ////////////////////////////////////////////////////////////////////////////
  383:     }
  384:  
  385:     ////////////////////////////////////////////////////////////////////////////
  386:     ////////////////////////////////////////////////////////////////////////////
  387: }