public IActionResult Create() { var now = DateTime.Now.AddHours(1); var later = now.AddHours(2); CalendarSogo.Models.Event ev = new CalendarSogo.Models.Event() { Start = now, End = later, }; return(View(ev)); }
public async Task <IActionResult> Create(CalendarSogo.Models.Event ev) { try { CalendarEvent e = new CalendarEvent() { Description = ev.Description, Summary = ev.Summary, Start = new CalDateTime(ev.Start), End = new CalDateTime(ev.End), Location = "301 cabinet", Comments = new List <string>() { "comment1" }, Contacts = new List <string>() { "Contacts" }, GeographicLocation = new GeographicLocation(), Organizer = new Organizer() { CommonName = "Organizer name", Value = new Uri("mailto:[email protected]") }, Attendees = new List <Attendee>() { new Attendee(new Uri("mailto:[email protected]")) { CommonName = "test1 name", Role = ParticipationRole.RequiredParticipant }, new Attendee(new Uri("mailto:[email protected]")) { CommonName = "test2 name", Role = ParticipationRole.RequiredParticipant }, } }; string readAll; //HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://mx.sailau09.kz/SOGo/dav/[email protected]/Calendar/personal/" + e.Uid + ".ics"); HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://mx.sailau09.kz/SOGo/dav/[email protected]/Calendar/dddd" + e.Uid + ".ics"); request.Credentials = new NetworkCredential("*****@*****.**", "!QAZ3edc"); request.ContentType = "text/calendar"; request.Headers.Add("If-None-Match", "*"); request.Method = "PUT"; request.ServerCertificateValidationCallback = delegate { return(true); };// при публикации на боевой сервер убрать Ical.Net.Calendar calendar = new Ical.Net.Calendar(); calendar.Events.Add(e); CalendarSerializer calendarSerializer = new CalendarSerializer(); // возьмем поток и запишем туда наше мероприятие using (var stream = request.GetRequestStream()) { calendarSerializer.Serialize(calendar, stream, Encoding.UTF8); } HttpWebResponse response = (HttpWebResponse)await request.GetResponseAsync(); using (Stream stream = response.GetResponseStream()) { using (StreamReader reader = new StreamReader(stream)) { var statusCode = response.StatusCode; readAll = reader.ReadToEnd(); } } } catch (Exception ex) { return(BadRequest(new { message = ex.Message })); } return(RedirectToAction("Index")); }