private string FormatAddress(ActiveUp.Net.Mail.Address address) { string result = string.Empty; if (address.Name.TrimEnd() != string.Empty) { result = string.Format("{0} ({1})", address.Name, address.Email); } else { result = address.Email; } return(result); }
/*/// <summary> * /// Process the Text template. * /// </summary> * private void ProcessTextTemplate(string content) * { * ActiveUp.Net.Mail.Logger.AddEntry("Processing the TEXT template.", 1); * * // Initialize strings to be used later * string line = string.Empty, lineUpper = string.Empty; * * // Initialize the StringReader to read line per line * StringReader reader = new StringReader(content); * * // Initialize the actual body count * int bodyCount = _bodies.Count, lineNumber = 0; * * // Read and parse each line. Append the data in the properties. * while (reader.Peek() > -1) * { * ActiveUp.Net.Mail.Logger.AddEntry("Line parsed. Body count: + " + bodyCount.ToString() + ".", 0); * * line = reader.ReadLine(); * lineNumber++; * lineUpper = line.ToUpper(); * * // If a property, then set value * if (lineUpper.StartsWith("TO:")) * { * ActiveUp.Net.Mail.Logger.AddEntry("TO property found: + " + line + " (raw).", 0); * this.Message.To.Add(Parser.ParseAddress(ExtractValue(line))); * } * else if (lineUpper.StartsWith("BCC:")) * { * ActiveUp.Net.Mail.Logger.AddEntry("BCC property found: + " + line + " (raw).", 0); * this.Message.Bcc.Add(Parser.ParseAddress(ExtractValue(line))); * } * else if (lineUpper.StartsWith("CC:")) * { * ActiveUp.Net.Mail.Logger.AddEntry("CC property found: + " + line + " (raw).", 0); * this.Message.Cc.Add(Parser.ParseAddress(ExtractValue(line))); * } * else if (lineUpper.StartsWith("FROM:")) * { * ActiveUp.Net.Mail.Logger.AddEntry("FROM property found: + " + line + " (raw).", 0); * this.Message.From = Parser.ParseAddress(ExtractValue(line)); * } * else if (lineUpper.StartsWith("SUBJECT:")) * { * ActiveUp.Net.Mail.Logger.AddEntry("SUBJECT property found: + " + line + " (raw).", 0); * this.Message.Subject += ExtractValue(line); * } * else if (lineUpper.StartsWith("SMTPSERVER:")) * { * ActiveUp.Net.Mail.Logger.AddEntry("SMTPSERVER property found: + " + line + " (raw).", 0); * this.SmtpServers.Add(ExtractValue(line), 25); * } * else if (lineUpper.StartsWith("BODYTEXT:")) * { * ActiveUp.Net.Mail.Logger.AddEntry("BODYTEXT property found: + " + line + " (raw).", 0); * this.Bodies.Add(ExtractValue(line), BodyFormat.Text); * bodyCount++; * } * else if (lineUpper.StartsWith("BODYHTML:")) * { * ActiveUp.Net.Mail.Logger.AddEntry("BODYHTML property found: + " + line + " (raw).", 0); * this.Bodies.Add(ExtractValue(line), BodyFormat.Html); * bodyCount++; * } * else if (lineUpper.StartsWith("FIELDFORMAT:") && lineUpper.IndexOf("=") > -1) * { * ActiveUp.Net.Mail.Logger.AddEntry("FIELDFORMAT property found: + " + line + " (raw).", 0); * this.FieldsFormats.Add(ExtractFormat(line)); * } * else if (lineUpper.StartsWith("//")) * { * ActiveUp.Net.Mail.Logger.AddEntry("COMMENT line found: + " + line + " (raw).", 0); * // Line is a comment, so do nothing * } * // If not a property, then it's a message line * else * { * ActiveUp.Net.Mail.Logger.AddEntry("BODY line found: + " + line + " (raw).", 0); * this.Bodies[bodyCount-1].Content += line + "\r\n"; * } * } * }*/ /*/// <summary> * /// Extract the format options from a text template line. * /// </summary> * /// <param name="line">The text template line.</param> * /// <returns>A FieldFormat object with the options.</returns> * private FieldFormat ExtractFormat(string line) * { * ActiveUp.Net.Mail.Logger.AddEntry("Extracting FieldFormat from line: + " + line + " (raw).", 0); * * FieldFormat fieldFormat = new FieldFormat(); * string property, val; * * foreach(string format in ExtractValue(line).Split(';')) * { * string[] lineSplit = format.Split('='); * * if (lineSplit.Length > 1) * { * property = lineSplit[0]; * val = lineSplit[1]; * * switch (property.ToUpper()) * { * case "NAME": fieldFormat.Name = val; break; * case "FORMAT": fieldFormat.Format = val; break; * case "PADDINGDIR": * if (val.ToUpper() == "LEFT") * fieldFormat.PaddingDir = PaddingDirection.Left; * else * fieldFormat.PaddingDir = PaddingDirection.Right; * break; * case "TOTALWIDTH": * try * { * fieldFormat.TotalWidth = Convert.ToInt16(val); * } * catch * { * throw new Exception("Specified Total Width is not a valid number."); * } * break; * case "PADDINGCHAR": fieldFormat.PaddingChar = Convert.ToChar(val.Substring(0, 1)); break; * } * * }// End if line split length > 1 * } * * return fieldFormat; * }*/ /// <summary> /// Process the Xml template. /// </summary> private void ProcessXmlTemplate(string content) { ActiveUp.Net.Mail.Logger.AddEntry("Processing the XML template.", 1); StringReader stringReader = new StringReader(content); XmlTextReader reader = new XmlTextReader(stringReader); string element = string.Empty; while (reader.Read()) { switch (reader.NodeType) { case XmlNodeType.Element: element = reader.Name; ActiveUp.Net.Mail.Logger.AddEntry("New element found: " + element + ".", 0); switch (element.ToUpper()) { case "MESSAGE": { if (reader.GetAttribute("PRIORITY") != null && reader.GetAttribute("PRIORITY") != string.Empty) { this.Message.Priority = (MessagePriority)Enum.Parse(typeof(MessagePriority), reader.GetAttribute("PRIORITY"), true); } else if (reader.GetAttribute("priority") != null && reader.GetAttribute("priority") != string.Empty) { this.Message.Priority = (MessagePriority)Enum.Parse(typeof(MessagePriority), reader.GetAttribute("priority"), true); } } break; case "FIELDFORMAT": if (reader.HasAttributes) { ActiveUp.Net.Mail.Logger.AddEntry("Element has attributes.", 0); FieldFormat fieldFormat = new FieldFormat(); if (reader.GetAttribute("NAME") != null && reader.GetAttribute("NAME") != string.Empty) { fieldFormat.Name = reader.GetAttribute("NAME"); ActiveUp.Net.Mail.Logger.AddEntry("Attribute NAME: " + fieldFormat.Name, 0); } else if (reader.GetAttribute("name") != null && reader.GetAttribute("name") != string.Empty) { fieldFormat.Name = reader.GetAttribute("name"); ActiveUp.Net.Mail.Logger.AddEntry("Attribute name: " + fieldFormat.Name, 0); } if (reader.GetAttribute("FORMAT") != null && reader.GetAttribute("FORMAT") != string.Empty) { fieldFormat.Format = reader.GetAttribute("FORMAT"); ActiveUp.Net.Mail.Logger.AddEntry("Attribute FORMAT: " + fieldFormat.Format, 0); } else if (reader.GetAttribute("format") != null && reader.GetAttribute("format") != string.Empty) { fieldFormat.Format = reader.GetAttribute("format"); ActiveUp.Net.Mail.Logger.AddEntry("Attribute format: " + fieldFormat.Format, 0); } if (reader.GetAttribute("PADDINGDIR") != null && reader.GetAttribute("PADDINGDIR") != string.Empty) { if (reader.GetAttribute("PADDINGDIR").ToUpper() == "LEFT") { fieldFormat.PaddingDir = PaddingDirection.Left; } else { fieldFormat.PaddingDir = PaddingDirection.Right; } ActiveUp.Net.Mail.Logger.AddEntry("Attribute PADDINGDIR: " + reader.GetAttribute("PADDINGDIR"), 0); } else if (reader.GetAttribute("paddingdir") != null && reader.GetAttribute("paddingdir") != string.Empty) { if (reader.GetAttribute("paddingdir").ToUpper() == "left") { fieldFormat.PaddingDir = PaddingDirection.Left; } else { fieldFormat.PaddingDir = PaddingDirection.Right; } ActiveUp.Net.Mail.Logger.AddEntry("Attribute paddingdir: " + reader.GetAttribute("paddingdir"), 0); } if (reader.GetAttribute("TOTALWIDTH") != null && reader.GetAttribute("TOTALWIDTH") != string.Empty) { try { fieldFormat.TotalWidth = Convert.ToInt16(reader.GetAttribute("TOTALWIDTH")); } catch { throw new Exception("Specified Total Width is not a valid number."); } ActiveUp.Net.Mail.Logger.AddEntry("Attribute TOTALWIDTH: " + fieldFormat.TotalWidth.ToString(), 0); } else if (reader.GetAttribute("totalwidth") != null && reader.GetAttribute("totalwidth") != string.Empty) { try { fieldFormat.TotalWidth = Convert.ToInt16(reader.GetAttribute("totalwidth")); } catch { throw new Exception("Specified Total Width is not a valid number."); } ActiveUp.Net.Mail.Logger.AddEntry("Attribute totalwidth: " + fieldFormat.TotalWidth.ToString(), 0); } if (reader.GetAttribute("PADDINGCHAR") != null && reader.GetAttribute("PADDINGCHAR") != string.Empty) { fieldFormat.PaddingChar = Convert.ToChar(reader.GetAttribute("PADDINGCHAR").Substring(0, 1)); ActiveUp.Net.Mail.Logger.AddEntry("Attribute PADDINGCHAR: '" + fieldFormat.PaddingChar + "'", 0); } else if (reader.GetAttribute("paddingchar") != null && reader.GetAttribute("paddingchar") != string.Empty) { fieldFormat.PaddingChar = Convert.ToChar(reader.GetAttribute("paddingchar").Substring(0, 1)); ActiveUp.Net.Mail.Logger.AddEntry("Attribute paddingchar: '" + fieldFormat.PaddingChar + "'", 0); } this.FieldsFormats.Add(fieldFormat); } break; case "FROM": case "TO": case "CC": case "BCC": if (reader.HasAttributes) { ActiveUp.Net.Mail.Address address = new ActiveUp.Net.Mail.Address(); if (reader.GetAttribute("NAME") != null && reader.GetAttribute("NAME") != string.Empty) { address.Name = reader.GetAttribute("NAME"); } else if (reader.GetAttribute("name") != null && reader.GetAttribute("name") != string.Empty) { address.Name = reader.GetAttribute("name"); } if (reader.GetAttribute("EMAIL") != null && reader.GetAttribute("EMAIL") != string.Empty) { address.Email = reader.GetAttribute("EMAIL"); } else if (reader.GetAttribute("email") != null && reader.GetAttribute("email") != string.Empty) { address.Email = reader.GetAttribute("email"); } if (element.ToUpper() == "FROM") { if (reader.GetAttribute("REPLYNAME") != null && reader.GetAttribute("REPLYNAME") != string.Empty) { InitReplyTo(); this.Message.ReplyTo.Name = reader.GetAttribute("REPLYNAME"); } else if (reader.GetAttribute("replyname") != null && reader.GetAttribute("replyname") != string.Empty) { InitReplyTo(); this.Message.ReplyTo.Name = reader.GetAttribute("replyname"); } if (reader.GetAttribute("REPLYEMAIL") != null && reader.GetAttribute("REPLYEMAIL") != string.Empty) { InitReplyTo(); this.Message.ReplyTo.Email = reader.GetAttribute("REPLYEMAIL"); } else if (reader.GetAttribute("replyemail") != null && reader.GetAttribute("replyemail") != string.Empty) { InitReplyTo(); this.Message.ReplyTo.Email = reader.GetAttribute("replyemail"); } if (reader.GetAttribute("RECEIPTEMAIL") != null && reader.GetAttribute("RECEIPTEMAIL") != string.Empty) { this.Message.ReturnReceipt.Email = reader.GetAttribute("RECEIPTEMAIL"); } else if (reader.GetAttribute("receiptemail") != null && reader.GetAttribute("receiptemail") != string.Empty) { this.Message.ReturnReceipt.Email = reader.GetAttribute("receiptemail"); } } switch (reader.Name.ToUpper()) { case "FROM": /*this.Message.From.Add(address);*/ this.Message.From = address; break; case "TO": this.Message.To.Add(address); break; case "CC": this.Message.Cc.Add(address); break; case "BCC": this.Message.Bcc.Add(address); break; } } break; case "LISTTEMPLATE": { ListTemplate template = new ListTemplate(); string RegionID = string.Empty; string NullText = string.Empty; if (reader.GetAttribute("REGIONID") != null && reader.GetAttribute("REGIONID") != string.Empty) { RegionID = reader.GetAttribute("REGIONID"); } else if (reader.GetAttribute("regionid") != null && reader.GetAttribute("regionid") != string.Empty) { RegionID = reader.GetAttribute("regionid"); } if (reader.GetAttribute("NULLTEXT") != null && reader.GetAttribute("NULLTEXT") != string.Empty) { NullText = reader.GetAttribute("NULLTEXT"); } else if (reader.GetAttribute("nulltext") != null && reader.GetAttribute("nulltext") != string.Empty) { NullText = reader.GetAttribute("nulltext"); } if (reader.HasAttributes && reader.GetAttribute("NAME") != null && reader.GetAttribute("NAME") != string.Empty) { template = new ListTemplate(reader.GetAttribute("NAME"), reader.ReadString()); } else if (reader.HasAttributes && reader.GetAttribute("name") != null && reader.GetAttribute("name") != string.Empty) { template = new ListTemplate(reader.GetAttribute("name"), reader.ReadString()); } template.RegionID = RegionID; template.NullText = NullText; this.ListTemplates.Add(template); } break; case "SMTPSERVER": { Server server = new Server(); if (reader.GetAttribute("SERVER") != null && reader.GetAttribute("SERVER") != string.Empty) { server.Host = reader.GetAttribute("SERVER"); } else if (reader.GetAttribute("server") != null && reader.GetAttribute("server") != string.Empty) { server.Host = reader.GetAttribute("server"); } if (reader.GetAttribute("PORT") != null && reader.GetAttribute("PORT") != string.Empty) { server.Port = int.Parse(reader.GetAttribute("PORT")); } else if (reader.GetAttribute("port") != null && reader.GetAttribute("port") != string.Empty) { server.Port = int.Parse(reader.GetAttribute("port")); } if (reader.GetAttribute("USERNAME") != null && reader.GetAttribute("USERNAME") != string.Empty) { server.Username = reader.GetAttribute("USERNAME"); } else if (reader.GetAttribute("username") != null && reader.GetAttribute("username") != string.Empty) { server.Username = reader.GetAttribute("username"); } if (reader.GetAttribute("PASSWORD") != null && reader.GetAttribute("PASSWORD") != string.Empty) { server.Password = reader.GetAttribute("PASSWORD"); } else if (reader.GetAttribute("password") != null && reader.GetAttribute("password") != string.Empty) { server.Password = reader.GetAttribute("password"); } SmtpServers.Add(server); } break; case "CONDITION": { Condition condition = new Condition(); if (reader.GetAttribute("REGIONID") != null && reader.GetAttribute("REGIONID") != string.Empty) { condition.RegionID = reader.GetAttribute("REGIONID"); } else if (reader.GetAttribute("regionid") != null && reader.GetAttribute("regionid") != string.Empty) { condition.RegionID = reader.GetAttribute("regionid"); } if (reader.GetAttribute("OPERATOR") != null && reader.GetAttribute("OPERATOR") != string.Empty) { condition.Operator = (OperatorType)Enum.Parse(typeof(OperatorType), reader.GetAttribute("OPERATOR"), true); } else if (reader.GetAttribute("operator") != null && reader.GetAttribute("operator") != string.Empty) { condition.Operator = (OperatorType)Enum.Parse(typeof(OperatorType), reader.GetAttribute("operator"), true); } if (reader.GetAttribute("NULLTEXT") != null && reader.GetAttribute("NULLTEXT") != string.Empty) { condition.NullText = reader.GetAttribute("NULLTEXT"); } else if (reader.GetAttribute("nulltext") != null && reader.GetAttribute("nulltext") != string.Empty) { condition.NullText = reader.GetAttribute("nulltext"); } if (reader.GetAttribute("FIELD") != null && reader.GetAttribute("FIELD") != string.Empty) { condition.Field = reader.GetAttribute("FIELD"); } else if (reader.GetAttribute("field") != null && reader.GetAttribute("field") != string.Empty) { condition.Field = reader.GetAttribute("field"); } if (reader.GetAttribute("VALUE") != null && reader.GetAttribute("VALUE") != string.Empty) { condition.Value = reader.GetAttribute("VALUE"); } else if (reader.GetAttribute("value") != null && reader.GetAttribute("value") != string.Empty) { condition.Value = reader.GetAttribute("value"); } if (reader.GetAttribute("CASESENSITIVE") != null && reader.GetAttribute("CASESENSITIVE") != string.Empty) { condition.CaseSensitive = bool.Parse(reader.GetAttribute("CASESENSITIVE")); } else if (reader.GetAttribute("casesensitive") != null && reader.GetAttribute("casesensitive") != string.Empty) { condition.CaseSensitive = bool.Parse(reader.GetAttribute("casesensitive")); } Conditions.Add(condition); } break; case "REGION": { Region region = new Region(); if (reader.GetAttribute("REGIONID") != null && reader.GetAttribute("REGIONID") != string.Empty) { region.RegionID = reader.GetAttribute("REGIONID"); } else if (reader.GetAttribute("regionid") != null && reader.GetAttribute("regionid") != string.Empty) { region.RegionID = reader.GetAttribute("regionid"); } if (reader.GetAttribute("NULLTEXT") != null && reader.GetAttribute("NULLTEXT") != string.Empty) { region.NullText = reader.GetAttribute("NULLTEXT"); } else if (reader.GetAttribute("nulltext") != null && reader.GetAttribute("nulltext") != string.Empty) { region.NullText = reader.GetAttribute("nulltext"); } if (reader.GetAttribute("URL") != null && reader.GetAttribute("URL") != string.Empty) { region.URL = reader.GetAttribute("URL"); } else if (reader.GetAttribute("url") != null && reader.GetAttribute("url") != string.Empty) { region.URL = reader.GetAttribute("url"); } Regions.Add(region); } break; } break; case XmlNodeType.Text: switch (element.ToUpper()) { case "SUBJECT": this.Message.Subject += reader.Value; break; /*case "SMTPSERVER": * this.SmtpServers.Add(reader.Value, 25); * break;*/ case "BODYHTML": //this.Bodies.Add(reader.Value, BodyFormat.Html); this.Message.BodyHtml.Text += reader.Value; break; case "BODYTEXT": //this.Bodies.Add(reader.Value, BodyFormat.Text); this.Message.BodyText.Text += reader.Value; break; } break; case XmlNodeType.EndElement: element = string.Empty; break; } } }
public HttpResponseMessage GetMails(int start, int limit, string folder, string parFolder, string mailAction, string mailIds, string filter, int page) { IEnumerable <Carrier> listCarrier = new List <Carrier>(); CarrierModel model = new CarrierModel(); int mailAct = 0; start++; if (mailAction.ToString() != "NaN") { mailAct = int.Parse(mailAction); } string message = null; MailUser acc = WebMailClientManager.getAccount(); if (string.IsNullOrEmpty(mailIds)) { mailIds = string.Empty; } message = DoAction(folder, parFolder, mailAct, mailIds, message, acc); ResultList <MailHeader> m = new ResultList <MailHeader>(start, limit, new List <MailHeader>(), 0); // IEnumerable<string> items = null; if (acc != null && acc.IsManaged && !String.IsNullOrEmpty(filter)) { DataContractJsonSerializer s = new DataContractJsonSerializer(typeof(Filter)); System.IO.MemoryStream ms = new System.IO.MemoryStream(); byte[] res = new byte[filter.Length]; Encoding.UTF8.GetBytes(filter, 0, filter.Length, res, 0); ms.Write(res, 0, res.Length); ms.Seek(0, System.IO.SeekOrigin.Begin); Filter filtro = (Filter)s.ReadObject(ms); Dictionary <MailIndexedSearch, List <string> > sValues = new Dictionary <MailIndexedSearch, List <string> >(); if (filtro.text.tipo != MailIndexedSearch.UNKNOWN && (filtro.text.values != null && filtro.text.values.Length > 0)) { sValues.Add(filtro.text.tipo, filtro.text.values.ToList()); } if (filtro.status.tipo != MailIndexedSearch.UNKNOWN && (filtro.status.values != null && filtro.status.values.Length > 0)) { sValues.Add(filtro.status.tipo, filtro.status.values.Select(e => ((int)e).ToString()).ToList()); } MailLocalService mailService = new MailLocalService(); ResultList <MailHeaderExtended> rl = mailService.GetMailsByParams(acc.EmailAddress, folder, parFolder, sValues, start, limit); m.Per = rl.Per; m.List = (rl.List == null) ? null : rl.List.Cast <MailHeader>().ToList() as ICollection <MailHeader>; m.Totale = rl.Totale; } else { MailServerFacade mailServerFacade = MailServerFacade.GetInstance(acc); m = mailServerFacade.MailHeader_ResultList_Fetch(folder, parFolder, start, limit); } if (m != null && m.List != null) { CultureInfo ci = CultureInfo.InvariantCulture; System.Runtime.Serialization.Json.DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(Carrier)); if (acc.IsManaged) { listCarrier = m.List.Cast <MailHeaderExtended>().Select(h => { string mStatus = ""; string destinatario = ""; switch (parFolder) { case "I": mStatus = h.MailRating.ToString(); destinatario = h.From; break; case "O": case "AO": mStatus = ((int)h.MailStatus).ToString(); //per gestire il semaforo per gli invii da server non PEC if (!acc.IsPec && h.MailStatus == MailStatus.SENT) { mStatus = ((int)MailStatus.AVVENUTA_CONSEGNA).ToString(); } destinatario = h.To; break; default: MailUser muser = WebMailClientManager.getAccount(); string idnome = (from f in muser.Folders where f.Id.ToString() == folder select f.IdNome).First(); string tipo = (from f in muser.Folders where f.Id.ToString() == folder select f.TipoFolder).First(); switch (idnome) { case "1": case "3": mStatus = h.MailRating.ToString(); destinatario = h.From; break; case "2": mStatus = ((int)h.MailStatus).ToString(); //per gestire il semaforo per gli invii da server non PEC if (!acc.IsPec && h.MailStatus == MailStatus.SENT) { mStatus = ((int)MailStatus.AVVENUTA_CONSEGNA).ToString(); } destinatario = h.To; break; default: switch (tipo) { case "E": mStatus = h.MailRating.ToString(); destinatario = h.From; break; case "D": mStatus = ((int)h.MailStatus).ToString(); //per gestire il semaforo per gli invii da server non PEC if (!acc.IsPec && h.MailStatus == MailStatus.SENT) { mStatus = ((int)MailStatus.AVVENUTA_CONSEGNA).ToString(); } destinatario = h.To; break; } break; } break; } ActiveUp.Net.Mail.Address add = ActiveUp.Net.Mail.Parser.ParseAddress(destinatario); if (String.IsNullOrEmpty(add.Name)) { destinatario = add.Email; } else { destinatario = System.Text.RegularExpressions.Regex.Replace(add.Name, "Per conto di:?", "", System.Text.RegularExpressions.RegexOptions.IgnoreCase).Trim(); if (destinatario.EndsWith("\"")) { destinatario.Replace("\"", ""); } } Carrier c = new Carrier { id = h.UniqueId, from = destinatario.Replace("\r", "").Replace("\n", "").Replace("\t", "").Replace("\"", "\\\""), date = h.Date.ToString("dd/MM/yyyy HH:mm:ss", ci), subject = h.Subject.Replace("\"", "\\\""), sStatus = mStatus, mStatus = ((int)h.MailStatus).ToString(), attach = Convert.ToInt16(h.HasAttachments).ToString(), utente = ((h.MailStatus == MailStatus.SCARICATA) ? "" : h.Utente), dimen = h.Dimensione }; return(c); //System.IO.MemoryStream ms = new System.IO.MemoryStream(); //ser.WriteObject(ms, c); //string jsonString = Encoding.UTF8.GetString(ms.ToArray()); //ms.Close(); //return jsonString; }); } else { listCarrier = m.List.Select(h => { Carrier c = new Carrier() { id = h.UniqueId, from = h.From.Replace("\r", "").Replace("\n", "").Replace("\t", "").Replace("\"", "\\\""), date = h.Date.ToString("dd/MM/yyyy HH:mm:ss", ci), subject = h.Subject.Replace("\"", "\\\""), mStatus = ((int)MailStatus.UNKNOWN).ToString(), sStatus = "", attach = "" }; return(c); //System.IO.MemoryStream ms = new System.IO.MemoryStream(); //ser.WriteObject(ms, c); //string jsonString = Encoding.UTF8.GetString(ms.ToArray()); //ms.Close(); //return jsonString; }); } } else { model.Message = "Nessun ritrovamento"; return(this.Request.CreateResponse <CarrierModel>(HttpStatusCode.OK, model)); //message = "Nessun ritrovamento"; } //StringBuilder sb = new StringBuilder(); //sb.Append("{\"TotalCount\":\"" + m.Totale.ToString() + "\","); //sb.Append("\"Message\":\"" + message + "\""); //if (items != null) //{ // sb.Append(",\"Data\":[" + String.Join(",", items.ToArray()) + "]"); //} //else //{ // sb.Append(",\"Data\": []"); //} //sb.Append("}"); model.TotalCount = m.Totale.ToString(); model.data = listCarrier.ToList(); model.success = "true"; return(this.Request.CreateResponse <CarrierModel>(HttpStatusCode.OK, model)); //context.Response.ContentType = "application/json"; //context.Response.AppendHeader("Content-type", "text/json"); //context.Response.Write(sb.ToString()); }
/*/// <summary> /// Process the Text template. /// </summary> private void ProcessTextTemplate(string content) { ActiveUp.Net.Mail.Logger.AddEntry("Processing the TEXT template.", 1); // Initialize strings to be used later string line = string.Empty, lineUpper = string.Empty; // Initialize the StringReader to read line per line StringReader reader = new StringReader(content); // Initialize the actual body count int bodyCount = _bodies.Count, lineNumber = 0; // Read and parse each line. Append the data in the properties. while (reader.Peek() > -1) { ActiveUp.Net.Mail.Logger.AddEntry("Line parsed. Body count: + " + bodyCount.ToString() + ".", 0); line = reader.ReadLine(); lineNumber++; lineUpper = line.ToUpper(); // If a property, then set value if (lineUpper.StartsWith("TO:")) { ActiveUp.Net.Mail.Logger.AddEntry("TO property found: + " + line + " (raw).", 0); this.Message.To.Add(Parser.ParseAddress(ExtractValue(line))); } else if (lineUpper.StartsWith("BCC:")) { ActiveUp.Net.Mail.Logger.AddEntry("BCC property found: + " + line + " (raw).", 0); this.Message.Bcc.Add(Parser.ParseAddress(ExtractValue(line))); } else if (lineUpper.StartsWith("CC:")) { ActiveUp.Net.Mail.Logger.AddEntry("CC property found: + " + line + " (raw).", 0); this.Message.Cc.Add(Parser.ParseAddress(ExtractValue(line))); } else if (lineUpper.StartsWith("FROM:")) { ActiveUp.Net.Mail.Logger.AddEntry("FROM property found: + " + line + " (raw).", 0); this.Message.From = Parser.ParseAddress(ExtractValue(line)); } else if (lineUpper.StartsWith("SUBJECT:")) { ActiveUp.Net.Mail.Logger.AddEntry("SUBJECT property found: + " + line + " (raw).", 0); this.Message.Subject += ExtractValue(line); } else if (lineUpper.StartsWith("SMTPSERVER:")) { ActiveUp.Net.Mail.Logger.AddEntry("SMTPSERVER property found: + " + line + " (raw).", 0); this.SmtpServers.Add(ExtractValue(line), 25); } else if (lineUpper.StartsWith("BODYTEXT:")) { ActiveUp.Net.Mail.Logger.AddEntry("BODYTEXT property found: + " + line + " (raw).", 0); this.Bodies.Add(ExtractValue(line), BodyFormat.Text); bodyCount++; } else if (lineUpper.StartsWith("BODYHTML:")) { ActiveUp.Net.Mail.Logger.AddEntry("BODYHTML property found: + " + line + " (raw).", 0); this.Bodies.Add(ExtractValue(line), BodyFormat.Html); bodyCount++; } else if (lineUpper.StartsWith("FIELDFORMAT:") && lineUpper.IndexOf("=") > -1) { ActiveUp.Net.Mail.Logger.AddEntry("FIELDFORMAT property found: + " + line + " (raw).", 0); this.FieldsFormats.Add(ExtractFormat(line)); } else if (lineUpper.StartsWith("//")) { ActiveUp.Net.Mail.Logger.AddEntry("COMMENT line found: + " + line + " (raw).", 0); // Line is a comment, so do nothing } // If not a property, then it's a message line else { ActiveUp.Net.Mail.Logger.AddEntry("BODY line found: + " + line + " (raw).", 0); this.Bodies[bodyCount-1].Content += line + "\r\n"; } } }*/ /*/// <summary> /// Extract the format options from a text template line. /// </summary> /// <param name="line">The text template line.</param> /// <returns>A FieldFormat object with the options.</returns> private FieldFormat ExtractFormat(string line) { ActiveUp.Net.Mail.Logger.AddEntry("Extracting FieldFormat from line: + " + line + " (raw).", 0); FieldFormat fieldFormat = new FieldFormat(); string property, val; foreach(string format in ExtractValue(line).Split(';')) { string[] lineSplit = format.Split('='); if (lineSplit.Length > 1) { property = lineSplit[0]; val = lineSplit[1]; switch (property.ToUpper()) { case "NAME": fieldFormat.Name = val; break; case "FORMAT": fieldFormat.Format = val; break; case "PADDINGDIR": if (val.ToUpper() == "LEFT") fieldFormat.PaddingDir = PaddingDirection.Left; else fieldFormat.PaddingDir = PaddingDirection.Right; break; case "TOTALWIDTH": try { fieldFormat.TotalWidth = Convert.ToInt16(val); } catch { throw new Exception("Specified Total Width is not a valid number."); } break; case "PADDINGCHAR": fieldFormat.PaddingChar = Convert.ToChar(val.Substring(0, 1)); break; } }// End if line split length > 1 } return fieldFormat; }*/ /// <summary> /// Process the Xml template. /// </summary> private void ProcessXmlTemplate(string content) { ActiveUp.Net.Mail.Logger.AddEntry("Processing the XML template.", 1); StringReader stringReader = new StringReader(content); XmlTextReader reader = new XmlTextReader(stringReader); string element = string.Empty; while (reader.Read()) { switch (reader.NodeType) { case XmlNodeType.Element: element = reader.Name; ActiveUp.Net.Mail.Logger.AddEntry("New element found: " + element + ".", 0); switch (element.ToUpper()) { case "MESSAGE": { if (reader.GetAttribute("PRIORITY") != null && reader.GetAttribute("PRIORITY") != string.Empty) this.Message.Priority = (MessagePriority)Enum.Parse(typeof(MessagePriority), reader.GetAttribute("PRIORITY"), true); else if (reader.GetAttribute("priority") != null && reader.GetAttribute("priority") != string.Empty) this.Message.Priority = (MessagePriority)Enum.Parse(typeof(MessagePriority), reader.GetAttribute("priority"), true); } break; case "FIELDFORMAT": if (reader.HasAttributes) { ActiveUp.Net.Mail.Logger.AddEntry("Element has attributes.", 0); FieldFormat fieldFormat = new FieldFormat(); if (reader.GetAttribute("NAME") != null && reader.GetAttribute("NAME") != string.Empty) { fieldFormat.Name = reader.GetAttribute("NAME"); ActiveUp.Net.Mail.Logger.AddEntry("Attribute NAME: " + fieldFormat.Name, 0); } else if (reader.GetAttribute("name") != null && reader.GetAttribute("name") != string.Empty) { fieldFormat.Name = reader.GetAttribute("name"); ActiveUp.Net.Mail.Logger.AddEntry("Attribute name: " + fieldFormat.Name, 0); } if (reader.GetAttribute("FORMAT") != null && reader.GetAttribute("FORMAT") != string.Empty) { fieldFormat.Format = reader.GetAttribute("FORMAT"); ActiveUp.Net.Mail.Logger.AddEntry("Attribute FORMAT: " + fieldFormat.Format, 0); } else if (reader.GetAttribute("format") != null && reader.GetAttribute("format") != string.Empty) { fieldFormat.Format = reader.GetAttribute("format"); ActiveUp.Net.Mail.Logger.AddEntry("Attribute format: " + fieldFormat.Format, 0); } if (reader.GetAttribute("PADDINGDIR") != null && reader.GetAttribute("PADDINGDIR") != string.Empty) { if (reader.GetAttribute("PADDINGDIR").ToUpper() == "LEFT") fieldFormat.PaddingDir = PaddingDirection.Left; else fieldFormat.PaddingDir = PaddingDirection.Right; ActiveUp.Net.Mail.Logger.AddEntry("Attribute PADDINGDIR: " + reader.GetAttribute("PADDINGDIR"), 0); } else if (reader.GetAttribute("paddingdir") != null && reader.GetAttribute("paddingdir") != string.Empty) { if (reader.GetAttribute("paddingdir").ToUpper() == "left") fieldFormat.PaddingDir = PaddingDirection.Left; else fieldFormat.PaddingDir = PaddingDirection.Right; ActiveUp.Net.Mail.Logger.AddEntry("Attribute paddingdir: " + reader.GetAttribute("paddingdir"), 0); } if (reader.GetAttribute("TOTALWIDTH") != null && reader.GetAttribute("TOTALWIDTH") != string.Empty) { try { fieldFormat.TotalWidth = Convert.ToInt16(reader.GetAttribute("TOTALWIDTH")); } catch { throw new Exception("Specified Total Width is not a valid number."); } ActiveUp.Net.Mail.Logger.AddEntry("Attribute TOTALWIDTH: " + fieldFormat.TotalWidth.ToString(), 0); } else if (reader.GetAttribute("totalwidth") != null && reader.GetAttribute("totalwidth") != string.Empty) { try { fieldFormat.TotalWidth = Convert.ToInt16(reader.GetAttribute("totalwidth")); } catch { throw new Exception("Specified Total Width is not a valid number."); } ActiveUp.Net.Mail.Logger.AddEntry("Attribute totalwidth: " + fieldFormat.TotalWidth.ToString(), 0); } if (reader.GetAttribute("PADDINGCHAR") != null && reader.GetAttribute("PADDINGCHAR") != string.Empty) { fieldFormat.PaddingChar = Convert.ToChar(reader.GetAttribute("PADDINGCHAR").Substring(0, 1)); ActiveUp.Net.Mail.Logger.AddEntry("Attribute PADDINGCHAR: '" + fieldFormat.PaddingChar + "'", 0); } else if (reader.GetAttribute("paddingchar") != null && reader.GetAttribute("paddingchar") != string.Empty) { fieldFormat.PaddingChar = Convert.ToChar(reader.GetAttribute("paddingchar").Substring(0, 1)); ActiveUp.Net.Mail.Logger.AddEntry("Attribute paddingchar: '" + fieldFormat.PaddingChar + "'", 0); } this.FieldsFormats.Add(fieldFormat); } break; case "FROM": case "TO": case "CC": case "BCC": if (reader.HasAttributes) { ActiveUp.Net.Mail.Address address = new ActiveUp.Net.Mail.Address(); if (reader.GetAttribute("NAME") != null && reader.GetAttribute("NAME") != string.Empty) address.Name = reader.GetAttribute("NAME"); else if (reader.GetAttribute("name") != null && reader.GetAttribute("name") != string.Empty) address.Name = reader.GetAttribute("name"); if (reader.GetAttribute("EMAIL") != null && reader.GetAttribute("EMAIL") != string.Empty) address.Email = reader.GetAttribute("EMAIL"); else if (reader.GetAttribute("email") != null && reader.GetAttribute("email") != string.Empty) address.Email = reader.GetAttribute("email"); if (element.ToUpper() == "FROM") { if (reader.GetAttribute("REPLYNAME") != null && reader.GetAttribute("REPLYNAME") != string.Empty) { InitReplyTo(); this.Message.ReplyTo.Name = reader.GetAttribute("REPLYNAME"); } else if (reader.GetAttribute("replyname") != null && reader.GetAttribute("replyname") != string.Empty) { InitReplyTo(); this.Message.ReplyTo.Name = reader.GetAttribute("replyname"); } if (reader.GetAttribute("REPLYEMAIL") != null && reader.GetAttribute("REPLYEMAIL") != string.Empty) { InitReplyTo(); this.Message.ReplyTo.Email = reader.GetAttribute("REPLYEMAIL"); } else if (reader.GetAttribute("replyemail") != null && reader.GetAttribute("replyemail") != string.Empty) { InitReplyTo(); this.Message.ReplyTo.Email = reader.GetAttribute("replyemail"); } if (reader.GetAttribute("RECEIPTEMAIL") != null && reader.GetAttribute("RECEIPTEMAIL") != string.Empty) { this.Message.ReturnReceipt.Email = reader.GetAttribute("RECEIPTEMAIL"); } else if (reader.GetAttribute("receiptemail") != null && reader.GetAttribute("receiptemail") != string.Empty) { this.Message.ReturnReceipt.Email = reader.GetAttribute("receiptemail"); } } switch (reader.Name.ToUpper()) { case "FROM": /*this.Message.From.Add(address);*/this.Message.From = address; break; case "TO": this.Message.To.Add(address); break; case "CC": this.Message.Cc.Add(address); break; case "BCC": this.Message.Bcc.Add(address); break; } } break; case "LISTTEMPLATE": { ListTemplate template = new ListTemplate(); string RegionID = string.Empty; string NullText = string.Empty; if (reader.GetAttribute("REGIONID") != null && reader.GetAttribute("REGIONID") != string.Empty) RegionID = reader.GetAttribute("REGIONID"); else if (reader.GetAttribute("regionid") != null && reader.GetAttribute("regionid") != string.Empty) RegionID = reader.GetAttribute("regionid"); if (reader.GetAttribute("NULLTEXT") != null && reader.GetAttribute("NULLTEXT") != string.Empty) NullText = reader.GetAttribute("NULLTEXT"); else if (reader.GetAttribute("nulltext") != null && reader.GetAttribute("nulltext") != string.Empty) NullText = reader.GetAttribute("nulltext"); if (reader.HasAttributes && reader.GetAttribute("NAME") != null && reader.GetAttribute("NAME") != string.Empty) template = new ListTemplate(reader.GetAttribute("NAME"), reader.ReadString()); else if (reader.HasAttributes && reader.GetAttribute("name") != null && reader.GetAttribute("name") != string.Empty) template = new ListTemplate(reader.GetAttribute("name"), reader.ReadString()); template.RegionID = RegionID; template.NullText = NullText; this.ListTemplates.Add(template); } break; case "SMTPSERVER": { Server server = new Server(); if (reader.GetAttribute("SERVER") != null && reader.GetAttribute("SERVER") != string.Empty) server.Host = reader.GetAttribute("SERVER"); else if (reader.GetAttribute("server") != null && reader.GetAttribute("server") != string.Empty) server.Host = reader.GetAttribute("server"); if (reader.GetAttribute("PORT") != null && reader.GetAttribute("PORT") != string.Empty) server.Port = int.Parse(reader.GetAttribute("PORT")); else if (reader.GetAttribute("port") != null && reader.GetAttribute("port") != string.Empty) server.Port = int.Parse(reader.GetAttribute("port")); if (reader.GetAttribute("USERNAME") != null && reader.GetAttribute("USERNAME") != string.Empty) server.Username = reader.GetAttribute("USERNAME"); else if (reader.GetAttribute("username") != null && reader.GetAttribute("username") != string.Empty) server.Username = reader.GetAttribute("username"); if (reader.GetAttribute("PASSWORD") != null && reader.GetAttribute("PASSWORD") != string.Empty) server.Password = reader.GetAttribute("PASSWORD"); else if (reader.GetAttribute("password") != null && reader.GetAttribute("password") != string.Empty) server.Password = reader.GetAttribute("password"); SmtpServers.Add(server); } break; case "CONDITION": { Condition condition = new Condition(); if (reader.GetAttribute("REGIONID") != null && reader.GetAttribute("REGIONID") != string.Empty) condition.RegionID = reader.GetAttribute("REGIONID"); else if (reader.GetAttribute("regionid") != null && reader.GetAttribute("regionid") != string.Empty) condition.RegionID = reader.GetAttribute("regionid"); if (reader.GetAttribute("OPERATOR") != null && reader.GetAttribute("OPERATOR") != string.Empty) condition.Operator = (OperatorType)Enum.Parse(typeof(OperatorType), reader.GetAttribute("OPERATOR"), true); else if (reader.GetAttribute("operator") != null && reader.GetAttribute("operator") != string.Empty) condition.Operator = (OperatorType)Enum.Parse(typeof(OperatorType), reader.GetAttribute("operator"), true); if (reader.GetAttribute("NULLTEXT") != null && reader.GetAttribute("NULLTEXT") != string.Empty) condition.NullText = reader.GetAttribute("NULLTEXT"); else if (reader.GetAttribute("nulltext") != null && reader.GetAttribute("nulltext") != string.Empty) condition.NullText = reader.GetAttribute("nulltext"); if (reader.GetAttribute("FIELD") != null && reader.GetAttribute("FIELD") != string.Empty) condition.Field = reader.GetAttribute("FIELD"); else if (reader.GetAttribute("field") != null && reader.GetAttribute("field") != string.Empty) condition.Field = reader.GetAttribute("field"); if (reader.GetAttribute("VALUE") != null && reader.GetAttribute("VALUE") != string.Empty) condition.Value = reader.GetAttribute("VALUE"); else if (reader.GetAttribute("value") != null && reader.GetAttribute("value") != string.Empty) condition.Value = reader.GetAttribute("value"); if (reader.GetAttribute("CASESENSITIVE") != null && reader.GetAttribute("CASESENSITIVE") != string.Empty) condition.CaseSensitive = bool.Parse(reader.GetAttribute("CASESENSITIVE")); else if (reader.GetAttribute("casesensitive") != null && reader.GetAttribute("casesensitive") != string.Empty) condition.CaseSensitive = bool.Parse(reader.GetAttribute("casesensitive")); Conditions.Add(condition); } break; case "REGION": { Region region = new Region(); if (reader.GetAttribute("REGIONID") != null && reader.GetAttribute("REGIONID") != string.Empty) region.RegionID = reader.GetAttribute("REGIONID"); else if (reader.GetAttribute("regionid") != null && reader.GetAttribute("regionid") != string.Empty) region.RegionID = reader.GetAttribute("regionid"); if (reader.GetAttribute("NULLTEXT") != null && reader.GetAttribute("NULLTEXT") != string.Empty) region.NullText = reader.GetAttribute("NULLTEXT"); else if (reader.GetAttribute("nulltext") != null && reader.GetAttribute("nulltext") != string.Empty) region.NullText = reader.GetAttribute("nulltext"); if (reader.GetAttribute("URL") != null && reader.GetAttribute("URL") != string.Empty) region.URL = reader.GetAttribute("URL"); else if (reader.GetAttribute("url") != null && reader.GetAttribute("url") != string.Empty) region.URL = reader.GetAttribute("url"); Regions.Add(region); } break; } break; case XmlNodeType.Text: switch (element.ToUpper()) { case "SUBJECT": this.Message.Subject += reader.Value; break; /*case "SMTPSERVER": this.SmtpServers.Add(reader.Value, 25); break;*/ case "BODYHTML": //this.Bodies.Add(reader.Value, BodyFormat.Html); this.Message.BodyHtml.Text += reader.Value; break; case "BODYTEXT": //this.Bodies.Add(reader.Value, BodyFormat.Text); this.Message.BodyText.Text += reader.Value; break; } break; case XmlNodeType.EndElement: element = string.Empty; break; } } }