una reunion las ics crear compartido como citas calendario archivos archivo aparecen agregar agendar c# html outlook

c# - reunion - icalendar outlook



Crear archivo.ics de Outlook en C#con hipervínculo dentro (1)

El código siguiente se supone que generará un archivo .ics con un enlace incrustado dentro. Genera los .ics pero el problema es que el enlace muestra el código html no el hipervínculo. Cualquier idea puede ayudar.

(Este es un reenvío ya que mi publicación anterior no muestra el código completo) Gracias.

public ActionResult ExportToOutlook(Guid id) { var query = new GetActivityByIdQuery(); var queryResult = query.Execute(id); var outlookCalendarFileCreator = new OutlookCalendarFileCreator(); var contentData = outlookCalendarFileCreator.CreateOutlookCalendarFile(queryResult); var fileName = String.Format("Activity.ics", queryResult.ActivityType.Name, queryResult.Date) ; return File( contentData,"text/plain", queryResult.Notes + fileName); } public class OutlookCalendarFileCreator { public Byte[] CreateOutlookCalendarFile(ActivityDetailsResponseDto responseDto) { byte[] contentData; HttpRequest request = System.Web.HttpContext.Current.Request; string baseUrl = request.Url.GetLeftPart(UriPartial.Authority); var hLink = string.Format("{0}/Activities/Details?id={1}", baseUrl, responseDto.Id); var sb = new StringBuilder(); sb.Append(@"X-ALT-DESC;FMTTYPE=text/html:<!DOCTYPE HTML PUBLIC ""-//W3C//DTD HTML 3.2//EN"">/n<HTML><BODY>"); sb.Append(string.Format("<a href=''{0}''>{1}</a>", hLink, responseDto.Notes)); sb.Append("</BODY></HTML>"); using (var memoryStream = new MemoryStream()) { using (var writer = new StreamWriter(memoryStream)) { writer.AutoFlush = true; //HEADER writer.WriteLine("BEGIN:VCALENDAR"); writer.WriteLine("VERSION:1.0"); writer.WriteLine("BEGIN:VEVENT"); //BODY writer.WriteLine("DTSTART:" + responseDto.Date.ToUniversalTime().ToString("o")); writer.WriteLine("DTEND:" + responseDto.Date.AddHours(1).ToUniversalTime().ToString("o")); writer.WriteLine("SUMMARY:" + responseDto.ActivityType.Name); writer.WriteLine("DESCRIPTION:" + sb.ToString()); //FOOTER writer.WriteLine("END:VEVENT"); writer.WriteLine("END:VCALENDAR"); writer.Flush(); contentData = new byte[(int)memoryStream.Length]; memoryStream.Position = 0; memoryStream.Read(contentData, 0, (int)memoryStream.Length); return contentData; } } }


De nuevo, tiene ":" después de DESCRIPTION. Necesitas tener ";" - punto y coma vs. colon

sb.Append(@"<!DOCTYPE HTML PUBLIC ""-//W3C//DTD HTML 3.2//EN"">/n<HTML><BODY>"); sb.Append(string.Format("<a href=''{0}''>{1}</a>", hLink, responseDto.Notes)); sb.Append("</BODY></HTML>"); ... writer.WriteLine("DESCRIPTION;X-ALT-DESC;FMTTYPE=text/html:" + sb.ToString());