Esempio n. 1
0
        public ActionResult <PeriodViewModel> GetMarkingPeriodTitleList(PeriodViewModel downViewModel)
        {
            PeriodViewModel dropDownViewModel = new PeriodViewModel();

            try
            {
                if (downViewModel.SchoolId > 0)
                {
                    dropDownViewModel = _markingPeriodService.GetMarkingPeriodTitleList(downViewModel);
                }
                else
                {
                    dropDownViewModel._token      = downViewModel._token;
                    dropDownViewModel._tenantName = downViewModel._tenantName;
                    dropDownViewModel._failure    = true;
                    dropDownViewModel._message    = "Please enter valid school id";
                }
            }
            catch (Exception es)
            {
                dropDownViewModel._failure = true;
                dropDownViewModel._message = es.Message;
            }
            return(dropDownViewModel);
        }
Esempio n. 2
0
        public IActionResult Demo(PeriodViewModel demoInput)
        {
            if (!ModelState.IsValid)
            {
                var wrongItems = new Dictionary <string, ModelErrorCollection>();

                foreach (var keyValue in ModelState)
                {
                    if (keyValue.Value.Errors.Count > 0)
                    {
                        wrongItems.Add(keyValue.Key, keyValue.Value.Errors);
                    }
                }

                var errorMsg = string.Join("; ", wrongItems.Select(x => $"{x.Key} : {x.Value.Select(y => y.ErrorMessage).Aggregate((i, j) => i + ", " + j)}"));
                _logger.LogInformation("Model binding error={@1}", errorMsg);
            }
            else
            {
                var beginStr = ConvertLocalDateTimeToIso8601(demoInput.Begin, demoInput.TimeZoneId);

                var endStr = demoInput.End.HasValue ? ConvertLocalDateTimeToIso8601(demoInput.End.Value, demoInput.TimeZoneId) : "";

                _logger.LogInformation($"Selected Begin: {{{beginStr}}}, End: {{{endStr}}}");
            }
            return(View("Index", demoInput));
        }
Esempio n. 3
0
        public IActionResult Period(int?id, [FromForm] PeriodBindingModel period)
        {
            if (period.SchoolDayId == 0)
            {
                return(BadRequest());
            }

            var periodDto = Mapper.Map <PeriodDto>(period);

            ServiceResult serviceResult = PeriodService.AddOrUpdatePeriod(periodDto, id);

            if (serviceResult.Result == Result.Error)
            {
                foreach (var error in serviceResult.Errors)
                {
                    ModelState.AddModelError(error.Key, error.Message);
                }

                if (!ModelState.IsValid)
                {
                    var periodViewModel = new PeriodViewModel(period, id);
                    return(View(periodViewModel));
                }
            }
            else if (serviceResult.Result == Result.NotFound)
            {
                return(NotFound());
            }

            int subjectId = serviceResult.Id;

            return(RedirectToSubject(subjectId));
        }
Esempio n. 4
0
        public IActionResult Period(int?id, [FromQuery] int dayId)
        {
            if (dayId == 0)
            {
                return(BadRequest());
            }

            PeriodDto periodDto;

            if (id != null)
            {
                periodDto = PeriodService.GetPeriod(id.Value);
                if (periodDto == null)
                {
                    return(NotFound());
                }
                if (periodDto.SchoolDayId != dayId)
                {
                    return(BadRequest());
                }
            }
            else
            {
                periodDto = new PeriodDto
                {
                    SchoolDayId = dayId,
                    Number      = Shared.Enums.PeriodNumber.First
                };
            }

            var periodBindingModel = Mapper.Map <PeriodBindingModel>(periodDto);
            var periodViewModel    = new PeriodViewModel(periodBindingModel, id);

            return(View(periodViewModel));
        }
Esempio n. 5
0
        public static PeriodCommentModel Read(PeriodViewModel period, StudentViewModel student)
        {
            using (SqlConnection connection = new SqlConnection(Settings.Default.SQLConnection))
            {
                connection.Open();

                using (SqlCommand command = new SqlCommand($"SELECT * FROM [PeriodComment] WHERE [Year] = {period.Year} AND [IdPeriod] = {period.Id} AND [IdStudent] = {student.Id}", connection))
                {
                    using (SqlDataReader reader = command.ExecuteReader())
                    {
                        if (reader.Read())
                        {
                            return(new PeriodCommentModel()
                            {
                                Id = (int)reader["Id"],
                                DisciplineReport = (int)reader["DisciplineReport"],
                                StudiesReport = (int)reader["StudiesReport"],
                                IdPeriod = period.Id,
                                IdStudent = student.Id,
                                Year = period.Year,
                            });
                        }
                    }
                }
            }

            return(null);
        }
Esempio n. 6
0
        public List <PeriodViewModel> GetWorkPeriodsForView()
        {
            List <PeriodViewModel> models = new List <PeriodViewModel>();

            using (SqlConnection connection = new SqlConnection(connectionString))
            {
                SqlCommand command = new SqlCommand("proc_GetWorkPeriods", connection);

                connection.Open();

                using (SqlDataReader reader = command.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        PeriodViewModel model = new PeriodViewModel
                        {
                            PeriodGuid  = Guid.Parse(reader["PeriodGuid"].ToString()),
                            AccountGuid = Guid.Parse(reader["AccountGuid"].ToString()),
                            FullName    = reader["FullName"].ToString(),
                            StartDate   = Convert.ToDateTime(reader["StartDate"].ToString()),
                            StopDate    = Convert.ToDateTime(reader["StopDate"].ToString()),
                        };
                        models.Add(model);
                    }
                }
            }
            return(models);
        }
        public PeriodLinesPage(PeriodViewModel viewModel)
        {
            InitializeComponent();
            var vm = ServiceLocator.Current.GetInstance <PeriodLinesViewModel>();

            vm.PeriodViewModelId = viewModel.Id;
            vm.Navigation        = this.Navigation;

            BindingContext = vm;
        }
Esempio n. 8
0
        public async Task <ActionResult> Submit(PeriodViewModel model)
        {
            DEQueries deq  = new DEQueries();
            var       info = await deq.GetUsersStatistics(model.Beg, model.End);

            ViewBag.Beg   = model.Beg;
            ViewBag.End   = model.End;
            ViewBag.Chart = GenerateChartImage(info);
            return(PartialView("_ChartViewPartial", info));
        }
Esempio n. 9
0
        public bool VerificarDuplicado(PeriodViewModel pPeriodViewModel)
        {
            var count = Set.Where(a => a.period_id != pPeriodViewModel.period_id && (
                                      (a.start_date >= pPeriodViewModel.start_date && a.start_date <= pPeriodViewModel.end_date) ||
                                      (a.end_date >= pPeriodViewModel.start_date && a.end_date <= pPeriodViewModel.end_date) ||

                                      (pPeriodViewModel.start_date >= a.start_date && pPeriodViewModel.start_date <= a.end_date) ||
                                      (pPeriodViewModel.end_date >= a.start_date && pPeriodViewModel.end_date <= a.end_date)

                                      )).Count();

            return(count == 0);
        }
        //Tested in AddressExtTests
        public static PeriodViewModel ToPeriodViewModel(this Period period)
        {
            var viewModel = new PeriodViewModel
            {
                Start = period.Start?.ToDateTime(),
                End   = period.End?.ToDateTime()
            };

            var now = DateTime.UtcNow;

            viewModel.IsActive = (!viewModel.Start.HasValue || viewModel.Start.Value <= now) && (!viewModel.End.HasValue || viewModel.End.Value > now);

            return(viewModel);
        }
Esempio n. 11
0
        public void Modificar(PeriodViewModel pPeriodViewModel)
        {
            periods operiods = oRepositorio.FindById(pPeriodViewModel.period_id);

            operiods.name = pPeriodViewModel.name;

            operiods.user_id_modified = pPeriodViewModel.user_id_modified;
            operiods.start_date       = pPeriodViewModel.start_date;
            operiods.end_date         = pPeriodViewModel.end_date;

            operiods.date_modified = DateTime.Now;
            oRepositorio.Update(operiods);
            oUnitOfWork.SaveChanges();
        }
Esempio n. 12
0
        public int CreateOrUpdate(PeriodViewModel item)
        {
            var data = (Period)null;

            if (item.Id > 0)
            {
                data = Repository.FirstOrDefault(x => x.Id == item.Id);
            }

            data = ToDomain(item, data);
            Repository.Store(data);
            Repository.SaveChanges();

            return(data.Id);
        }
Esempio n. 13
0
        public void Agregar(PeriodViewModel pPeriodViewModel)
        {
            periods operiods = new periods
            {
                period_id       = 0,
                name            = pPeriodViewModel.name,
                date_created    = DateTime.Now,
                user_id_created = pPeriodViewModel.user_id_created,
                end_date        = pPeriodViewModel.end_date,
                start_date      = pPeriodViewModel.start_date,
            };

            oRepositorio.Add(operiods);
            oUnitOfWork.SaveChanges();
        }
Esempio n. 14
0
        public JsonResult Verificar([Bind(Include = "period_id,name,start_date_text, end_date_text")] PeriodViewModel pPeriodViewModel)
        {
            pPeriodViewModel.start_date = DateTime.ParseExact(pPeriodViewModel.start_date_text, "dd/MM/yyyy", CultureInfo.InvariantCulture);
            pPeriodViewModel.end_date   = DateTime.ParseExact(pPeriodViewModel.end_date_text, "dd/MM/yyyy", CultureInfo.InvariantCulture);
            PeriodBL oBL = new PeriodBL();
            var      valido_duplicado = oBL.VerificarDuplicado(pPeriodViewModel.period_id, pPeriodViewModel.name);
            var      valido_fechas    = oBL.VerificarDuplicado(pPeriodViewModel);

            return(Json(new
            {
                // this is what datatables wants sending back
                valido_duplicado = valido_duplicado,
                valido_fechas = valido_fechas,
            }));
        }
Esempio n. 15
0
        public ActionResult Index()
        {
            PeriodBL        oPeriodBL = new PeriodBL();
            PeriodViewModel oPeriod   = oPeriodBL.ObtenerVigente();


            SelectorBL oSelectorBL           = new SelectorBL();
            List <SelectOptionItem> oPeriods = oSelectorBL.PeriodsSelector();
            List <SelectListItem>   periods  = Helper.ConstruirDropDownList <SelectOptionItem>(oPeriods, "Value", "Text", "", false, "", "");

            ViewBag.periods = periods;

            GeneralFilterViewModel oGeneralFilterViewModel = new GeneralFilterViewModel();

            oGeneralFilterViewModel.period_id = oPeriod.period_id;
            return(View(oGeneralFilterViewModel));
        }
Esempio n. 16
0
        public ActionResult Editar([Bind(Include = "period_id,name,start_date_text, end_date_text")] PeriodViewModel pPeriodViewModel)
        {
            // TODO: Add insert logic here

            if (pPeriodViewModel == null)
            {
                return(HttpNotFound());
            }
            PeriodBL oPeriodBL = new PeriodBL();

            pPeriodViewModel.user_id_modified = AuthorizeUserAttribute.UsuarioLogeado().user_id;

            pPeriodViewModel.start_date = DateTime.ParseExact(pPeriodViewModel.start_date_text, "dd/MM/yyyy", CultureInfo.InvariantCulture);
            pPeriodViewModel.end_date   = DateTime.ParseExact(pPeriodViewModel.end_date_text, "dd/MM/yyyy", CultureInfo.InvariantCulture);
            oPeriodBL.Modificar(pPeriodViewModel);
            return(RedirectToAction("Index"));
        }
Esempio n. 17
0
        /// <summary>
        /// Insert new period group.
        /// </summary>
        /// <param name="model">The period information value.</param>
        /// <returns></returns>
        public ResultViewModel Save(PeriodViewModel model)
        {
            var result = new ResultViewModel();

            using (TransactionScope scope = new TransactionScope())
            {
                var periodGroup = _mapper.Map <PeriodViewModel, Period>(model);
                periodGroup.CreateBy            = _token.EmpNo;
                periodGroup.CreateDate          = DateTime.Now;
                periodGroup.CreateByPurchaseOrg = _token.PurchasingOrg[0];
                _unitOfWork.GetRepository <Period>().Add(periodGroup);
                _unitOfWork.Complete();
                this.SaveItem(periodGroup.Id, this.InitialEvaluationDate(model.PeriodItems));
                _unitOfWork.Complete(scope);
            }
            this.ReloadCachePeriod();
            return(result);
        }
Esempio n. 18
0
 void ObjectsCollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
 {
     if (e.Action == NotifyCollectionChangedAction.Remove)
     {
         try
         {
             foreach (object item in e.OldItems)
             {
                 PeriodViewModel UIObject = item as PeriodViewModel;
                 PeriodsDataAccess.DeleteObject(UIObject.GetDataObject());
             }
         }
         catch (Exception ex)
         {
             log.Error(ex.StackTrace);
         }
     }
 }
Esempio n. 19
0
        /// <summary>
        /// Update period group.
        /// </summary>
        /// <param name="model">The period information value.</param>
        /// <returns></returns>
        public ResultViewModel Edit(PeriodViewModel model)
        {
            var result = new ResultViewModel();

            using (TransactionScope scope = new TransactionScope())
            {
                var periodGroup = _unitOfWork.GetRepository <Period>().GetById(model.Id);
                periodGroup.Year           = Convert.ToInt32(model.Year);
                periodGroup.Name           = model.Name;
                periodGroup.LastModifyBy   = _token.EmpNo;
                periodGroup.LastModifyDate = DateTime.Now;
                _unitOfWork.GetRepository <Period>().Update(periodGroup);
                this.EditItem(periodGroup.Id, this.InitialEvaluationDate(model.PeriodItems));
                _unitOfWork.Complete(scope);
            }
            this.ReloadCachePeriod();
            return(result);
        }
Esempio n. 20
0
        public ActionResult Editar(string id)
        {
            PeriodBL oBL    = new PeriodBL();
            int      pIntID = 0;

            int.TryParse(id, out pIntID);
            PeriodViewModel pPeriodViewModel = oBL.Obtener(pIntID);

            if (pPeriodViewModel.start_date.HasValue)
            {
                pPeriodViewModel.start_date_text = pPeriodViewModel.start_date.Value.ToString("dd/MM/yyyy");
            }
            if (pPeriodViewModel.end_date.HasValue)
            {
                pPeriodViewModel.end_date_text = pPeriodViewModel.end_date.Value.ToString("dd/MM/yyyy");
            }
            return(View(pPeriodViewModel));
        }
Esempio n. 21
0
        // GET: User
        public ActionResult Index()
        {
            SelectorBL oSelectorBL = new SelectorBL();
            List <SelectOptionItem> oCommissions = oSelectorBL.CommissionsSelector();
            List <SelectListItem>   commissions  = Helper.ConstruirDropDownList <SelectOptionItem>(oCommissions, "Value", "Text", "", true, "0", "TODOS");

            ViewBag.commissions = commissions;

            List <SelectOptionItem> oInterestAreas = oSelectorBL.InterestAreasSelector();
            List <SelectListItem>   interest_areas = Helper.ConstruirDropDownList <SelectOptionItem>(oInterestAreas, "Value", "Text", "", true, "0", "TODOS");

            ViewBag.commissions    = commissions;
            ViewBag.interest_areas = interest_areas;

            List <SelectOptionItem> oEstados = oSelectorBL.StatusSelector();
            List <SelectListItem>   estados  = Helper.ConstruirDropDownList <SelectOptionItem>(oEstados, "Value", "Text", "", true, "0", "TODOS");

            ViewBag.commissions = commissions;
            ViewBag.estados     = estados;


            List <SelectOptionItem> oOrigins = oSelectorBL.OriginSelector();
            List <SelectListItem>   origins  = Helper.ConstruirDropDownList <SelectOptionItem>(oOrigins, "Value", "Text", "", true, "0", "TODOS");

            ViewBag.commissions = commissions;
            ViewBag.origins     = origins;


            List <SelectOptionItem> oPeriods = oSelectorBL.PeriodsSelector();
            List <SelectListItem>   periods  = Helper.ConstruirDropDownList <SelectOptionItem>(oPeriods, "Value", "Text", "", false, "", "");

            ViewBag.commissions = commissions;
            ViewBag.periods     = periods;
            PeriodBL        oPeriodBL = new PeriodBL();
            PeriodViewModel oPeriod   = oPeriodBL.ObtenerVigente();



            ReportFilterViewModel oReportFilterViewModel = new ReportFilterViewModel();

            oReportFilterViewModel.period_id = oPeriod.period_id;
            return(View(oReportFilterViewModel));
        }
Esempio n. 22
0
        public IHttpActionResult DraftLawSearch(DraftLawSearchFilterLiteViewModel filter)
        {
            DraftLawBL      oBL       = new DraftLawBL();
            PeriodBL        oPeriodBL = new PeriodBL();
            PeriodViewModel oPeriod   = oPeriodBL.ObtenerVigente();

            filter.period_id = oPeriod.period_id;
            List <DraftLawLiteViewModel> lista = oBL.ObtenerProyectosLeyMovil(filter);



            var result = new
            {
                // this is what datatables wants sending back

                data = lista
            };

            return(Ok(result));
        }
Esempio n. 23
0
        void ObjectsItemEndEdit(IEditableObject sender)
        {
            PeriodViewModel UIObject = sender as PeriodViewModel;

            try
            {
                int id = PeriodsDataAccess.UpdateObject(UIObject.GetDataObject());
                if (id != -1)
                {
                    UIObject.Id = id;
                }
            }
            catch
            {
                UIObjects.Remove(UIObject);
                RadWindow.Alert(new DialogParameters
                {
                    Content = MessageUtil.FormatMessage("ERROR.DuplicatedEntry", UIObject.Name, UIObject.Case)
                });
            }
        }
Esempio n. 24
0
        public List <PeriodViewModel> SearchPeriods(DateTime?startDate = null, DateTime?endDate = null, Guid?accountGuid = null)
        {
            List <PeriodViewModel> models = new List <PeriodViewModel>();

            using (SqlConnection connection = new SqlConnection(connectionString))
            {
                SqlCommand command = new SqlCommand("proc_GetWorkPeriodsBySearch", connection);
                command.CommandType = System.Data.CommandType.StoredProcedure;

                if (startDate != null && endDate != null)
                {
                    command.Parameters.AddWithValue("@StartDate", (DateTime)startDate);
                    command.Parameters.AddWithValue("@EndDate", (DateTime)endDate);
                }

                if (accountGuid != null && accountGuid != Guid.Empty)
                {
                    command.Parameters.AddWithValue("@AccountGuid", (Guid)accountGuid);
                }

                connection.Open();

                using (SqlDataReader reader = command.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        PeriodViewModel model = new PeriodViewModel
                        {
                            PeriodGuid  = Guid.Parse(reader["PeriodGuid"].ToString()),
                            AccountGuid = Guid.Parse(reader["AccountGuid"].ToString()),
                            FullName    = reader["FullName"].ToString(),
                            StartDate   = Convert.ToDateTime(reader["StartDate"].ToString()),
                            StopDate    = Convert.ToDateTime(reader["StopDate"].ToString()),
                        };
                        models.Add(model);
                    }
                }
            }
            return(models);
        }
Esempio n. 25
0
        private List <ImportError> ValidarPeriodo(PeriodViewModel oPeriod, List <ImportError> oErrores)
        {
            oErrores = new List <ImportError>();
            List <string> oErrorCabecera = new List <string>();
            string        formatError    = "No hay un periodo vigente para hoy \"" + DateTime.Today.ToString("dd/MM/yyyy") + "\"";

            oErrorCabecera = new List <string>();
            if (oPeriod == null || oPeriod.period_id <= 0)
            {
                oErrorCabecera.Add(formatError);
            }

            if (oErrorCabecera.Count > 0)
            {
                oErrores.Add(new ImportError
                {
                    nroFila = 0,
                    errores = oErrorCabecera,
                });
            }
            return(oErrores);
        }
Esempio n. 26
0
        public static void Save(PeriodViewModel period)
        {
            using (SqlConnection connection = new SqlConnection(Settings.Default.SQLConnection))
            {
                connection.Open();

                string query = "";
                if (period.Id == 0)
                {
                    query = "INSERT INTO [Period]([Year], Trimester, Number, FromDate, ToDate)"
                            + $" VALUES({period.Year}, {period.Trimester}, {period.Number}, '{period.FromDate.ToShortDateString()}', '{period.ToDate.ToShortDateString()}')";
                }
                else
                {
                    query = $"UPDATE [Period] SET Trimester = {period.Trimester}, Number = {period.Number}, FromDate = '{period.FromDate.ToShortDateString()}', ToDate = '{period.ToDate.ToShortDateString()}'"
                            + $" WHERE [Period].Id = {period.Id} AND [Period].[Year] = {period.Year}";
                }
                using (SqlCommand command = new SqlCommand(query, connection))
                {
                    command.ExecuteNonQuery();
                }
            }
        }
Esempio n. 27
0
        public PeriodViewModel GetMarkingPeriodTitleList(PeriodViewModel dropdownModel)
        {
            PeriodViewModel dropDownViewModel = new PeriodViewModel();

            try
            {
                if (TokenManager.CheckToken(dropdownModel._tenantName + dropdownModel._userName, dropdownModel._token))
                {
                    dropDownViewModel = this.markingperiodRepository.GetMarkingPeriodTitleList(dropdownModel);
                }
                else
                {
                    dropDownViewModel._failure = true;
                    dropDownViewModel._message = TOKENINVALID;
                }
            }
            catch (Exception es)
            {
                dropDownViewModel._failure = true;
                dropDownViewModel._message = es.Message;
            }

            return(dropDownViewModel);
        }
Esempio n. 28
0
        public IHttpActionResult ConceptsAll(ConceptsFilterLiteViewModel filter)
        {
            ConceptBL oConceptBL = new ConceptBL();
            //ConceptFiltersViewModel ofilters = new ConceptFiltersViewModel();
            PeriodBL        oPeriodBL = new PeriodBL();
            PeriodViewModel oPeriod   = oPeriodBL.ObtenerVigente();

            filter.period_id = oPeriod.period_id;
            List <ConceptLiteViewModel> lista = oConceptBL.ObtenerMovil(filter);

            var path = ConfigurationManager.AppSettings["pdf.path"];

            lista.ForEach(a => a.pdf_file = a.pdf_file.Replace(path, ""));


            var result = new
            {
                // this is what datatables wants sending back

                data = lista
            };

            return(Ok(result));
        }
Esempio n. 29
0
        public async Task <PeriodViewModel> LoadRange(Guid userId, DateTime start, DateTime end)
        {
            var days = await _dayEntryRepository.FindByPeriod(userId, start, end);

            var config = await _configurationRepository.FindByUser(userId);

            if (config == null)
            {
                await _mediator.Publish(new DomainNotification("Load points", "User doesn't have a configuration"));

                return(null);
            }

            var result = new PeriodViewModel();

            result.Days = new List <DayEntryViewModel>();
            foreach (var day in days)
            {
                result.Days.Add(new DayEntryViewModel
                {
                    Id          = day.Id,
                    Date        = day.Date,
                    ExtraTime   = day.ExtraTime,
                    MissingTime = day.MissingTime,
                    WorkedTime  = day.WorkedTime,
                    Points      = day.Points.OrderBy(p => p.Date).Select(p => new TimeEntryViewModel
                    {
                        Id        = p.Id,
                        Time      = p.Date,
                        CreatedAt = p.Date
                    })
                });
            }
            var workedTime  = result.Days.Sum(x => x.WorkedTime);
            var missingTime = TimeSpan.Zero;
            var extraTime   = TimeSpan.Zero;

            var totalHours = config.WorkingTime * GetWorkingDays(start, end);

            result.TotalWorkHours = string.Format("{0}hr {1}m",
                                                  (int)totalHours.TotalHours,
                                                  totalHours.Minutes);

            if (workedTime > totalHours)
            {
                extraTime = workedTime.Subtract(totalHours);
            }
            else if (totalHours > workedTime)
            {
                missingTime = totalHours.Subtract(workedTime);
            }

            result.TotalExtraTime   = FormatTimespan(extraTime);
            result.TotalMissingTime = FormatTimespan(missingTime);
            result.TotalWorkedTime  = FormatTimespan(workedTime);

            result.WorkedTimePercentage = (result.Days.Sum(x => x.WorkedTime).TotalHours * 100)
                                          / totalHours.TotalHours;
            result.BankTimePercentage = ((result.BankSign > 0 ? extraTime.TotalHours : missingTime.TotalHours) * 100)
                                        / totalHours.TotalHours;

            if (missingTime.Ticks > 0)
            {
                result.BankSign = -1;
            }
            else if (extraTime.Ticks > 0)
            {
                result.BankSign = 1;
            }

            return(result);
        }
        public async Task <ActionResult> Orders([Bind(Include = "Orders,GroupId,IsLastPeriod")] PeriodViewModel model)
        {
            Group group = await Db.Groups.Where(x => x.Users.Select(c => c.Id).Contains(CurrentUser.Id)).FirstOrDefaultAsync();

            if (group == null)
            {
                Flash.Error("Error", "Lo Siento pero usted no pertenece a ningún grupo para empezar el modelo de gestión");
                return(RedirectToAction("Index", "Home"));
            }
            if (!group.Section.IsActivedSimulation)
            {
                //Tira un error de que el model de gestión aún no ha empezado
                Flash.Error("Error", "El Modelo de gestión aún no ha empezado");
                return(RedirectToAction("Index", "Home"));
            }
            if (!group.Section.IsActivedSimulation && group.Section.Periods.Select(x => x.IsLastPeriod).Contains(true))
            {
                Flash.Info("Información", "El modelo de gestión ha finalizado");
                return(RedirectToAction("GroupResults", "Results", new { IsReadyToOrder = false }));
            }
            if (group.IsInSimulation == false)
            {
                Flash.Error("Error", "Este Modelo de gestión ya ha iniciado no puede incluirse");
                return(RedirectToAction("Index", "Home"));
            }
            Period lastPeriod = group.Section.Periods.Where(t => t.Demands.Count() > 0).OrderByDescending(x => x.Created).FirstOrDefault();

            if (lastPeriod == null)
            {
                //Tira un error de que no puede llenar ordenes hasta que el profesor ingrese demanda.
                Flash.Error("Error", "El Profesor aún no suministra nuevas demandas");
                return(RedirectToAction("Index", "Home"));
            }
            else if (lastPeriod.Orders.Where(x => x.Group == group).Count() != 0)
            {
                //Tira un error de que no puede llenar ordenes hasta que el profesor ingrese demanda.
                Flash.Error("Error", "El Profesor aún no sumistra nuevas demandas");
                return(RedirectToAction("Index", "Home"));
            }

            lastPeriod = group.Section.Periods.OrderByDescending(x => x.Created).FirstOrDefault();
            try
            {
                if (ModelState.IsValid)
                {
                    foreach (var order in model.Orders)
                    {
                        if (!TryValidateModel(order))
                        {
                            Flash.Error("Error", "Ha ocurrido un error con las ordenes");
                            return(RedirectToAction("Orders"));
                        }
                        Product product  = Db.Products.Where(x => x.Id == order.ProductId).FirstOrDefault();
                        Order   newOrder = new Order
                        {
                            Id        = Guid.NewGuid(),
                            Created   = DateTime.Now,
                            Group     = group,
                            OrderType = (order.OrderMethodOption == null || order.Quantity == null) ? OrderType.None : (OrderType)order.OrderMethodOption,
                            Product   = product,
                            Quantity  = order.Quantity == null ? 0 : (int)order.Quantity,
                        };
                        lastPeriod.Orders.Add(newOrder);
                    }
                    await Db.SaveChangesAsync();

                    Flash.Success("Ok", "Las Ordenes han sido realizadas exitosamente");
                    return(RedirectToAction("Index", "Home"));
                }
                else
                {
                    Flash.Error("Error", "Ha Ocurrido un error creando las ordenes");
                    return(RedirectToAction("Index", "Home"));
                }
            }
            catch (Exception)
            {
                Flash.Error("Error", "Ha Ocurrido un error creando las ordenes");
                return(RedirectToAction("Index", "Home"));
            }
        }