示例#1
0
        public async Task <IActionResult> PutContingent([FromRoute] string id, [FromBody] Contingent contingents)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != contingents.ContingentLeaderNo)
            {
                return(BadRequest());
            }

            _context.Entry(contingents).State = EntityState.Modified;

            Utilities.Log(_context, HttpContext, $"Update contingent {contingents.ContingentLeaderNo}", 1, true);

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!ContingentsExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
示例#2
0
        public IHttpActionResult PutContingent(int id, Contingent contingent)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != contingent.ID)
            {
                return(BadRequest());
            }

            db.Entry(contingent).State = EntityState.Modified;

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!ContingentExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
示例#3
0
        /// <summary>
        /// Fill Links object for Contingents.
        /// </summary>
        /// <param name="contingent">Contingent object</param>
        /// <returns></returns>
        public void FillContingentsLinks(Contingent contingent)
        {
            var idObject = new { id = contingent.ContingentLeaderNo };

            contingent.Links = new LinkHelper()
                               /* Contingent Actions */
                               .SetOptions(User, typeof(ContingentsController), Url)
                               .AddLink(nameof(ContingentsController.GetContingent), idObject)
                               .AddLink(nameof(ContingentsController.PutContingent), idObject)
                               .AddLink(nameof(ContingentsController.DeleteContingent), idObject)

                               /* POST a ContingentArrival */
                               .SetOptions(User, typeof(ContingentArrivalsController), Url)
                               .AddLink(nameof(ContingentArrivalsController.PostContingentArrival), null, "create_contingent_arrival")
                               .GetLinks();

            foreach (var ca in contingent.ContingentArrival)
            {
                FillContingentArrivalLinks(ca);
            }

            foreach (var ra in contingent.RoomAllocation)
            {
                FillRoomAllocationLinks(ra);
            }

            foreach (var person in contingent.Person)
            {
                FillPersonLinks(person);
            }
        }
示例#4
0
        public async Task <IActionResult> PostContingent([FromBody] Contingent contingents)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            _context.Contingents.Add(contingents);
            try
            {
                Utilities.Log(_context, HttpContext, $"Create contingent {contingents.ContingentLeaderNo}", 1, true);
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateException)
            {
                if (ContingentsExists(contingents.ContingentLeaderNo))
                {
                    return(new StatusCodeResult(StatusCodes.Status409Conflict));
                }
                else
                {
                    throw;
                }
            }

            return(CreatedAtAction("GetContingents", new { id = contingents.ContingentLeaderNo }, contingents));
        }
示例#5
0
        public async Task <ActionResult> UploadSheet()
        {
            var file = Request.Form.Files[0];

            if (file.Length > 0)
            {
                string fileName = ContentDispositionHeaderValue.Parse(file.ContentDisposition).FileName.Trim('"');
                var    stream   = file.OpenReadStream();

                /* Maintain a list of updated things */
                var updatedPeople      = new List <Person>();
                var updatedContingents = new List <Contingent>();

                /* Read the worksheet */
                using (ExcelPackage package = new ExcelPackage(stream)) {
                    ExcelWorksheet workSheet = package.Workbook.Worksheets[0];
                    for (int i = workSheet.Dimension.Start.Row + 1;
                         i <= workSheet.Dimension.End.Row;
                         i++)
                    {
                        string     clno       = getValue(workSheet, i, UploadSheetColumns.clno).ToUpper();
                        string     mino       = getValue(workSheet, i, UploadSheetColumns.mino).ToUpper();
                        Contingent contingent = _context.Contingents.SingleOrDefault(c => c.ContingentLeaderNo == clno);

                        /* Create contingent if it does not exist */
                        if (contingent == null)
                        {
                            contingent = new Contingent();
                            contingent.ContingentLeaderNo = clno;
                            _context.Contingents.Add(contingent);
                            _context.SaveChanges();
                            updatedContingents.Add(contingent);
                        }

                        Person person = _context.Person.SingleOrDefault(p => p.Mino == mino);

                        /* Create person if does not exist */
                        if (person == null)
                        {
                            person      = new Person();
                            person.Name = getValue(workSheet, i, UploadSheetColumns.name);
                            person.ContingentLeaderNo = clno;
                            person.Mino    = mino;
                            person.College = getValue(workSheet, i, UploadSheetColumns.college);
                            person.Sex     = (getValue(workSheet, i, UploadSheetColumns.gender).ToLower().Contains('f')) ? "F" : "M";
                            person.Email   = getValue(workSheet, i, UploadSheetColumns.email);
                            person.Phone   = getValue(workSheet, i, UploadSheetColumns.contact);
                            _context.Person.Add(person);
                            _context.SaveChanges();
                            updatedPeople.Add(person);
                        }
                    }

                    await _context.SaveChangesAsync();
                }
                return(Ok());
            }
            return(BadRequest("Nothing found here"));
        }
示例#6
0
        public IHttpActionResult DeleteContingent(int id)
        {
            Contingent contingent = db.Contingents.Find(id);

            if (contingent == null)
            {
                return(NotFound());
            }

            db.Contingents.Remove(contingent);
            db.SaveChanges();

            return(Ok(contingent));
        }
示例#7
0
 private void RemainingPlanets(Contingent contingent)
 {
     if (contingent == Contingent.UP)
     {
         Console.WriteLine("There are " + upPlanets + " Union of Planets planets remaining.");
     }
     if (contingent == Contingent.Cerian)
     {
         Console.WriteLine("There are " + cerianPlanets + " Cerian planets remaining.");
     }
     if (contingent == Contingent.UP || contingent == Contingent.Cerian || contingent == Contingent.Unaffiliated)
     {
         Console.WriteLine("There are " + totalPlanets + " total planets remaining.");
     }
 }
示例#8
0
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            Contingent contingent = db.Contingents.Find(id);

            if (contingent == null)
            {
                return(HttpNotFound());
            }

            return(View(contingent));
        }
示例#9
0
        /// <summary>
        /// Создает экземпляр класса <name>ApplicationsParser</name>
        /// </summary>
        /// <param name="fileName">Имя файла с расширением .docx, содержащего заявления студентов</param>
        /// <param name="firstHeadersColumnName">Название первого столбца шапки таблицы с заявлениями</param>
        /// <param name="curriculum">Учебный план</param>
        /// <param name="contingent">Контингент</param>
        /// <param name="columnsCount">Количество непустых параграфов, содержащих информацию о заявлении</param>
        /// <param name="semester">Заявки какого семестра хотим получить</param>
        public Applications(string fileName, string firstHeadersColumnName,
                            ICurriculumWithElectiveBlocks curriculum, Contingent contingent, int columnsCount, int semester)
        {
            this.semester         = semester;
            this.contingent       = contingent;
            this.curriculum       = curriculum;
            firstHeaderColumnName = firstHeadersColumnName;

            applicationFileColumnsCount = columnsCount;
            clearedCurriculumCode       = ClearCurriculumCode(curriculum.CurriculumCode);
            studentsExistedInApplicationsNotInContingent = new HashSet <Student>();

            var wordDocument = WordprocessingDocument.Open(fileName, false);
            var body         = wordDocument.MainDocumentPart.Document.Body;

            paragraphs = body.Elements <Paragraph>().ToList();
            //reader = OpenXmlReader.Create(body);
        }
示例#10
0
        public static string GetContingentCollege(Contingent contingent)
        {
            string college = "N/A";

            if (contingent.Person.Count > 0)
            {
                Person cl = contingent.Person.Where(m => m.Mino.ToUpper() == contingent.ContingentLeaderNo.ToUpper()).FirstOrDefault();
                if (cl != null)
                {
                    college = cl.College;
                }
                else
                {
                    college = "?" + contingent.Person.First().College;
                }
            }
            return(college);
        }
示例#11
0
 private string DescribeTarget(Contingent contingent)
 {
     if (contingent == Contingent.Cerian)
     {
         return("a Cerian planet!");
     }
     if (contingent == Contingent.UP)
     {
         return("a Union of Planets planet!");
     }
     if (contingent == Contingent.Unaffiliated)
     {
         return("a planet!");
     }
     else
     {
         return("the thing you described!");
     }
 }
示例#12
0
        private void FireWeaponAtTarget(Contingent contingent)
        {
            if (!IsWeaponReady())
            {
                Console.WriteLine($"The weapon is currently cooling down, you must wait {(DateTime.Now - timerStartTime).Seconds} seconds until it is ready to fire.");
                return;
            }

            if (contingent == Contingent.Unaffiliated ||
                contingent == Contingent.Cerian ||
                contingent == Contingent.UP)
            {
                totalPlanets--;
            }

            if (contingent == Contingent.UP)
            {
                upPlanets--;
            }

            if (contingent == Contingent.Cerian)
            {
                cerianPlanets--;
            }

            string target = String.Empty;

            if (contingent == Contingent.Other)
            {
                Console.WriteLine("Notify director what you would like to blow up, then enter it here (ESC to cancel):");
                target = ReadLineWithCancel();
                if (target == null)
                {
                    return;
                }
            }

            remainingFireCount--;
            RemainingPlanets(contingent);
            Console.WriteLine("You have blown up " + (contingent == Contingent.Other ? ("\"" + target + "\"!") : DescribeTarget(contingent)));
        }
示例#13
0
        public ActionResult Edit(Contingent contingent)
        {
            contingent.Validate(ModelState);

            if (ModelState.IsValid)
            {
                if (contingent.UpdateAccount() == false)
                {
                    ModelState.AddModelError("AccountUpdate", "Failed To Update Account");

                    return(View(contingent));
                }

                db.Entry(contingent).State = EntityState.Modified;
                db.SaveChanges();

                return(RedirectToAction("Index"));
            }

            return(View(contingent));
        }
示例#14
0
        public IHttpActionResult PostContingent(dynamic psObject)
        {
            try
            {
                ADUser adUser = ADUser.CreateFromDynamicObject(psObject);

                Contingent contingent = Contingent.Create(adUser);

                if (contingent != null)
                {
                    db.Contingents.Add(contingent);
                    db.SaveChanges();

                    return(CreatedAtRoute("DefaultApi", new { id = contingent.ID }, adUser));
                }

                return(BadRequest());
            }
            catch (Exception)
            {
                return(BadRequest());
            }
        }
示例#15
0
        public async Task <IActionResult> GetContingent([FromRoute] string id)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            Contingent contingent = await _context.Contingents.Where(m => m.ContingentLeaderNo.ToUpperInvariant() == id.ToUpperInvariant())
                                    .Include(m => m.RoomAllocation)
                                    .ThenInclude(m => m.Room)
                                    .Include(m => m.Person)
                                    .Include(m => m.ContingentArrival)
                                    .SingleOrDefaultAsync();

            if (contingent == null)
            {
                return(NotFound());
            }

            new LinksMaker(User, Url).FillContingentsLinks(contingent);

            return(Ok(contingent));
        }
示例#16
0
 /// <summary>
 /// Создает экземляр класса <name>DisciplineChangeApplications</name>
 /// </summary>
 /// <param name="fileName">Имя файла с расширением .docx с заявлениями о выборе дисциплин</param>
 /// <param name="semester">Заявления какого семестра хотим получить</param>
 /// <param name="curriculum">Учебный план, заявления учащихся которого хотим обрабатывать</param>
 /// <param name="contingent">Контингент - все студенты факультета</param>
 public DisciplineChangeApplications(string fileName,
                                     int semester, ICurriculumWithElectiveBlocks curriculum, Contingent contingent)
     : base(fileName, "Прежняя дисциплина", curriculum, contingent, 4, semester)
 {
     applications = new List <DisciplineChangeApplication>();
     ParseApplicationsFile();
     if (applications.Count == 0)
     {
         throw new ApplicationParsingException("Не найдено ни одного заявления, соответсвующего данному учебному плану. " +
                                               "Проверьте файлы с заявлениями и учебным планом");
     }
 }
示例#17
0
 public Squad(Contingent.FormationType formation, ITeammate[] teammates, IController controller)
 {
     Formation = formation;
     _ITeammates = teammates;
     _Controller = controller;
 }