Inheritance: BaseEntity
        public ActionResult AddAgendaPoint(int recordOfMeetingId, EAgendaPointStatus status, int petianoId, string title, string description)
        {
            AgendaPoint agendaPoint = new AgendaPoint()
            {
                RecordOfMeetingId = recordOfMeetingId,
                Status = (EAgendaPointStatus)status,
                PETianoId = petianoId,
                Title = title,
                Description = description
            };

            _AgendaPointService.CreateAgendaPoint(agendaPoint);

            return Json(new { id = agendaPoint.Id, title = agendaPoint.Title, description = agendaPoint.Description });
        }
 public void EditAgendaPoint(AgendaPoint agendaPoint)
 {
     using (IDataProvider provider = base.CreateDataProvider())
     using (IAgendaPointRepository repository = provider.CreateAgendaPointRepository())
         repository.Update(agendaPoint);
 }
        public ActionResult EditAgendaPoint(AgendaPoint agendaPoint)
        {
            if(string.IsNullOrEmpty(agendaPoint.Title))
            {
                agendaPoint = _AgendaPointService.GetAgendaPoint(new AgendaPointFilter() { Id = agendaPoint.Id });
                return View(agendaPoint);
            }

            _AgendaPointService.EditeAgendaPoint(agendaPoint);
            return RedirectToAction("Index");
        }
        public ActionResult DeleteAgendaPoint(AgendaPoint agendaPoint)
        {
            _AgendaPointService.DeleteAgendaPoint(agendaPoint);

            return RedirectToAction("Index");
        }
        public ActionResult CreateRecordOfMeeting(CreateRecordOfMeetingModel createRecordOfMeeting)
        {
            if(createRecordOfMeeting.RecordOfMeeting == null)
            {
                createRecordOfMeeting.ImportNewAgendaPoints = true;
                createRecordOfMeeting.ImportFixedAgendaPoints = true;
                createRecordOfMeeting.RecordOfMeeting = new RecordOfMeeting() { Date = DateTime.Now, Status = ERecordOfMeetingStatus.Open};

                ViewBag.PETianos = _PETianoService.GetPETianos().Select(petiano => new SelectListItem
                {
                    Text = petiano.Name + "(" + petiano.Login + ")",
                    Value = petiano.Id.ToString()
                });
                return View(createRecordOfMeeting);
            }

            RecordOfMeeting Last = _RecordOfMeetingService.GetRecordsOfMeetings().LastOrDefault();

            RecordOfMeeting recordOfMeeting = createRecordOfMeeting.RecordOfMeeting;

            recordOfMeeting.Date = DateTime.Now;
            recordOfMeeting.Status = ERecordOfMeetingStatus.Open;

            _RecordOfMeetingService.CreateRecordOfMeeting(recordOfMeeting);

            if(createRecordOfMeeting.ImportNewAgendaPoints)
            {
                List<AgendaPoint> Novos = _AgendaPointService.GetAgendaPoints(new AgendaPointFilter() { Status = (int)EAgendaPointStatus.New });
                foreach(AgendaPoint var in Novos)
                {
                    var.Status = EAgendaPointStatus.JustAdded;
                    var.RecordOfMeetingId = recordOfMeeting.Id;

                    _AgendaPointService.EditeAgendaPoint(var);
                }
            }

            if(createRecordOfMeeting.ImportFixedAgendaPoints && Last != null)
            {
                foreach(AgendaPoint var in Last.AgendaPoints)
                {
                    AgendaPoint temp = new AgendaPoint()
                    {
                        PETianoId = var.PETianoId,
                        Title = var.Title,
                        Description = var.Description,
                        Status = var.Status == EAgendaPointStatus.Fixed ? EAgendaPointStatus.Fixed : EAgendaPointStatus.Outstanding,
                        RecordOfMeetingId = recordOfMeeting.Id
                    };

                    _AgendaPointService.CreateAgendaPoint(temp);
                }
            }

            return RedirectToAction("Index");
        }
        public ActionResult CreateAgendaPoint(AgendaPoint agendaPoint)
        {
            if(string.IsNullOrEmpty(agendaPoint.Title))
            {
                agendaPoint.PETianoId = _Logado.Id;
                agendaPoint.Status = EAgendaPointStatus.New;

                return View(agendaPoint);
            }

            _AgendaPointService.CreateAgendaPoint(agendaPoint);
            return RedirectToAction("Index");
        }
 public void EditeAgendaPoint(AgendaPoint agendaPoint)
 {
     using (IBusinessProvider provider = base.CreateBusinessProvider())
     using (IAgendaPointBusinessProvider prov = provider.CreateAgendaPointBusinessProvider())
         prov.EditAgendaPoint(agendaPoint);
 }