Ejemplo n.º 1
0
        public AgendaMessage GetMeetingAgendaCollection(Guid meetingId, AuthRestModel user)
        {
            var instanceConnectionString = _applicationSetting.CreateConnectionString(_applicationSetting.Server,
                                                                                      _applicationSetting.Catalogue, user.InstanceId, _applicationSetting.GetInstancePassword(user.InstanceId));
            var data = _minutzAgendaRepository.GetMeetingAgendaCollection(meetingId, user.InstanceId, instanceConnectionString);

            if (data.Condition)
            {
                if (data.AgendaCollection.Any())
                {
                    var updated = new List <MeetingAgenda>();
                    foreach (var agenda in data.AgendaCollection)
                    {
                        if (agenda.Order == 0)
                        {
                            agenda.Order = updated.Count;
                        }
                        updated.Add(agenda);
                    }
                    data.AgendaCollection = updated;
                    data.AgendaCollection = data.AgendaCollection.OrderBy(i => i.Order).ToList();
                }
            }
            return(new AgendaMessage {
                Condition = data.Condition, Message = data.Message, AgendaCollection = data.AgendaCollection
            });
        }
Ejemplo n.º 2
0
        public ActionResult Invoice(Guid m, string i)
        {
            var instanceConnectionString = _applicationSetting.CreateConnectionString(_applicationSetting.Server,
                                                                                      _applicationSetting.Catalogue, i, _applicationSetting.GetInstancePassword(i));
            var masterConnectionString = _applicationSetting.CreateConnectionString();

            var meetingRequest = _getMeetingRepository.Get(m, i, instanceConnectionString);


            var meeting = !meetingRequest.Condition ? new Minutz.Models.Entities.Meeting() : meetingRequest.Meeting;


            if (string.IsNullOrEmpty(meeting.Outcome))
            {
                meeting.Outcome = "Outcome not set.";
            }
            if (string.IsNullOrEmpty(meeting.Location))
            {
                meeting.Location = "Location not set.";
            }
            if (string.IsNullOrEmpty(meeting.Purpose))
            {
                meeting.Purpose = "Purpose not set.";
            }
            if (string.IsNullOrEmpty(meeting.Time))
            {
                meeting.Time = "0:00";
            }


            var agendaCollection = _agendaRepository.GetMeetingAgendaCollection(m, i, instanceConnectionString);
            var agendaItems      = new List <JsReportAgenda>();

            if (agendaCollection.Condition)
            {
                foreach (var meetingAgenda in agendaCollection.AgendaCollection)
                {
                    if (string.IsNullOrEmpty(meetingAgenda.AgendaText))
                    {
                        meetingAgenda.AgendaText = string.Empty;
                    }
                    agendaItems.Add(new JsReportAgenda
                    {
                        agendaHeading = meetingAgenda.AgendaHeading,
                        agendaText    = meetingAgenda.AgendaText.Replace("<p>", "").Replace("</p>", "")
                                        .Replace("<b>", "").Replace("</b>", "").Replace("&nbsp;", "&")
                    });
                }
            }
            var noteRequest = _noteRepository.GetNoteCollection(m, i, instanceConnectionString);
            var notes       = new List <JsReportNote>();

            if (noteRequest.Condition)
            {
                foreach (var meetingNote in noteRequest.NoteCollection)
                {
                    notes.Add(new JsReportNote
                    {
                        noteText = meetingNote.NoteText.Replace("<p>", "").Replace("</p>", "")
                                   .Replace("<b>", "").Replace("</b>", "").Replace("&nbsp;", "&")
                    });
                }
            }

            var attendees = new List <JsReportAttendee>();

            try
            {
                var attendeeResult = _minutzAttendeeRepository.GetAttendees(m, i, instanceConnectionString, masterConnectionString);
                if (attendeeResult.Condition)
                {
                    foreach (var attendee in attendeeResult.Attendees)
                    {
                        attendees.Add(new JsReportAttendee
                        {
                            name = attendee.Name,
                            role = attendee.Role
                        });
                    }
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }



            var client = new HttpClient();
            var url    = "https://minutz.jsreportonline.net/api/report";

            var data = new JsReportObject
            {
                name     = meeting.Name,
                location = meeting.Location,
                time     = meeting.Time,
                outcome  = meeting.Outcome.Replace("<p>", "").Replace("</p>", "")
                           .Replace("<b>", "").Replace("</b>", "").Replace("&nbsp;", "&"),
                purpose = meeting.Purpose.Replace("<p>", "").Replace("</p>", "")
                          .Replace("<b>", "").Replace("</b>", "").Replace("&nbsp;", "&"),
                agenda    = agendaItems,
                notes     = notes,
                attendees = attendees
            };

            var model = new SendData
            {
                options = new options {
                    timeout = 60000
                },
                data     = data,
                template = new template {
                    shortid = "SJKYFyoYM"
                }
            };
            var token   = CreateAuthHeader();
            var payload = model.ToStringContent();

            client.DefaultRequestHeaders.Add("Authorization", token);
            var reportRequest = client.PostAsync(url, payload).Result;
            var report        = reportRequest.Content.ReadAsByteArrayAsync().Result;

            return(new FileContentResult(report, "application/pdf"));
        }