示例#1
0
        public async Task <IActionResult> Return(int?Id)
        {
            if (Id != null)
            {
                PartYearEvent partYearEvent = await db.PartYearEvents.FirstOrDefaultAsync(p => p.Id == Id);

                if (partYearEvent != null)
                {
                    if (await Success(partYearEvent))
                    {
                        Doner doner = new Doner();
                        PartYearEventViewModel partYearEventViewModel = new PartYearEventViewModel
                        {
                            Id                = partYearEvent.Id,
                            YearEventId       = partYearEvent.YearEventId,
                            NumberYearEvent   = partYearEvent.NumberYearEvent,
                            Done              = partYearEvent.Done,
                            Img               = partYearEvent.Img,
                            Pdf               = partYearEvent.Pdf,
                            PriceB            = partYearEvent.PriceB,
                            PriceNotB         = partYearEvent.PriceNotB,
                            DateTime          = partYearEvent.DateTime,
                            UserNameСonfirmed = partYearEvent.UserNameСonfirmed,
                            UserNameSent      = partYearEvent.UserNameSent,
                            Сomment           = partYearEvent.Сomment,
                            maxDone           = await doner.GetMaxDone(partYearEvent.Id, db)
                        };

                        return(View(partYearEventViewModel));
                    }
                }
            }
            return(RedirectToAction("Index", "Home"));
        }
示例#2
0
        public async Task <IActionResult> Confirm(int?Id)
        {
            if (Id != null)
            {
                PartYearEvent partYearEvent = await db.PartYearEvents.FirstOrDefaultAsync(p => p.Id == Id);

                if (partYearEvent != null)
                {
                    PartYearEventDetailsViewModel partYearEventDetailsViewModel = new PartYearEventDetailsViewModel()
                    {
                        Id = (int)Id,
                        NumberYearEvent   = partYearEvent.NumberYearEvent,
                        Done              = partYearEvent.Done,
                        Img               = partYearEvent.Img,
                        Pdf               = partYearEvent.Pdf,
                        PriceB            = partYearEvent.PriceB,
                        PriceNotB         = partYearEvent.PriceNotB,
                        DateTime          = partYearEvent.DateTime,
                        UserNameСonfirmed = partYearEvent.UserNameСonfirmed,
                        UserNameSent      = partYearEvent.UserNameSent
                    };
                    YearEvent yearEvent = await db.YearEvents.FirstOrDefaultAsync(ye => ye.Id == partYearEvent.YearEventId);

                    partYearEventDetailsViewModel.DataYear  = yearEvent.DataYear;
                    partYearEventDetailsViewModel.EventText = yearEvent.EventText;
                    Agency agency = await db.Agencies.FirstOrDefaultAsync(a => a.Id == yearEvent.AgencyId);

                    partYearEventDetailsViewModel.Agency       = agency.Name;
                    partYearEventDetailsViewModel.FullDonePlan = yearEvent.FirstQuarter + yearEvent.SecondQuarter + yearEvent.ThirdQuarter + yearEvent.FirstQuarter;
                    return(View(partYearEventDetailsViewModel));
                }
            }
            return(RedirectToAction("Index", "Home"));
        }
示例#3
0
        public async Task <IActionResult> Confirm(PartYearEventDetailsViewModel partYearEventDetailsViewModel)
        {
            if (partYearEventDetailsViewModel != null)
            {
                PartYearEvent partYearEvent = await db.PartYearEvents.FirstOrDefaultAsync(p => p.Id == partYearEventDetailsViewModel.Id);

                partYearEvent.UserNameСonfirmed = User.Identity.Name;
                await db.SaveChangesAsync();

                return(RedirectToAction("Index", new { userName = User.Identity.Name }));
            }
            return(RedirectToAction("Index", "Home"));
        }
示例#4
0
        public async Task <IActionResult> Delete(PartYearEventViewModel partYearEventViewModel)
        {
            if (partYearEventViewModel != null)
            {
                PartYearEvent partYearEvent = await db.PartYearEvents.FirstOrDefaultAsync(p => p.Id == partYearEventViewModel.Id);

                if (partYearEvent != null)
                {
                    db.PartYearEvents.Remove(partYearEvent);
                    await db.SaveChangesAsync();
                }
            }
            return(RedirectToAction("Index", "Home"));
        }
示例#5
0
        public async Task <IActionResult> Return(PartYearEventViewModel partYearEventViewModel)
        {
            if (partYearEventViewModel != null)
            {
                PartYearEvent partYearEvent = await db.PartYearEvents.FirstOrDefaultAsync(p => p.Id == partYearEventViewModel.Id);

                {
                    if (partYearEvent != null)
                    {
                        string path = _appEnvironment.WebRootPath;
                        if (partYearEventViewModel.Done != 0)
                        {
                            partYearEvent.Done = partYearEventViewModel.Done;
                        }
                        partYearEvent.PriceB    = partYearEventViewModel.PriceB;
                        partYearEvent.PriceNotB = partYearEventViewModel.PriceNotB;

                        if (partYearEventViewModel.PdfFile != null)
                        {
                            using (var fileStream = new FileStream(path + partYearEvent.Pdf, FileMode.Create))
                            {
                                await partYearEventViewModel.PdfFile.CopyToAsync(fileStream);

                                await fileStream.FlushAsync();
                            }
                        }

                        if (partYearEventViewModel.ImageFile != null)
                        {
                            using (var fileStream = new FileStream(path + partYearEvent.Img, FileMode.Create))
                            {
                                await partYearEventViewModel.ImageFile.CopyToAsync(fileStream);

                                await fileStream.FlushAsync();
                            }
                        }
                        partYearEvent.Сomment           = null;
                        partYearEvent.UserNameСonfirmed = null;
                        await db.SaveChangesAsync();

                        //string test =await DataYearFilter.GetStringDataYear(partYearEvent.YearEventId, db);
                        return(RedirectToAction("Index", new { userName = User.Identity.Name, dataYear = await DataYearFilter.GetStringDataYear(partYearEvent.YearEventId, db) }));
                    }
                }
            }
            return(RedirectToAction("Index", "Home"));
        }
示例#6
0
        /// <summary>
        /// Проверяет принадлежит ли данный отчет авторезированому в данный момент пользователю
        /// </summary>
        ///<param name="partYearEvent">отчет годового плана</param>
        /// <returns></returns>
        public async Task <bool> Success(PartYearEvent partYearEvent)
        {
            YearEvent yearEvent = await db.YearEvents.FirstOrDefaultAsync(y => y.Id == partYearEvent.YearEventId); //получаем год план

            Agency agency = await db.Agencies.FirstOrDefaultAsync(a => a.Id == yearEvent.AgencyId);                // получаем учреждение

            User userAgency = await _userManager.FindByNameAsync(User.Identity.Name);                              //пользователь который авторизован

            if (userAgency != null)                                                                                //если авторизован
            {
                var userAgencyRoles = await _userManager.GetRolesAsync(userAgency);                                //перечень ролей пользователя авторизованного в данный момент

                if (userAgencyRoles.Contains(agency.Name))                                                         //если среди ролей есть название учреждения
                {
                    return(true);
                }
            }
            return(false);
        }
示例#7
0
文件: Doner.cs 项目: dooom4552/ITO
        /// <summary>
        /// Возвращает количество необходимое для полного завершения данного пункта годового плана по id отчета
        /// </summary>
        /// <param name="idPartYearEvent">id отчета годового плана</param>
        /// <returns></returns>
        public async Task <int> GetMaxDone(int?idPartYearEvent, AllContext db)
        {
            if (idPartYearEvent != null)
            {
                PartYearEvent partYearEvent = await db.PartYearEvents.FirstOrDefaultAsync(p => p.Id == idPartYearEvent);

                YearEvent yearEvent = await db.YearEvents.FirstOrDefaultAsync(y => y.Id == partYearEvent.YearEventId);

                int fullDonePlan = yearEvent.FirstQuarter + yearEvent.SecondQuarter + yearEvent.ThirdQuarter + yearEvent.FirstQuarter;

                List <PartYearEvent> partYearEventsСonfirmed = await db.PartYearEvents
                                                               .Where(p => p.YearEventId == partYearEvent.YearEventId && p.Сomment == null && p.UserNameСonfirmed != null).ToListAsync();

                int fullDoneNaw = 0;
                foreach (var part in partYearEventsСonfirmed)
                {
                    fullDoneNaw += part.Done;
                }
                return(fullDonePlan - fullDoneNaw);
            }
            return(0);
        }
示例#8
0
        public async Task <IActionResult> Execute(PartYearEventViewModel partYearEventViewModel)
        {
            if (partYearEventViewModel != null)
            {
                YearEvent yearEvent = await db.YearEvents.FirstOrDefaultAsync(y => y.Id == partYearEventViewModel.YearEventId);

                Agency agency = await db.Agencies.FirstOrDefaultAsync(ag => ag.Id == yearEvent.AgencyId);

                // путь к папке Files
                string path = Path.Combine(_appEnvironment.WebRootPath, "img");
                //string pathWWWRootNot = "\\img\\";

                if (!Directory.Exists(Path.Combine(path, agency.Name)))
                {
                    Directory.CreateDirectory(Path.Combine(path, agency.Name));
                }

                path = Path.Combine(path, agency.Name);
                string pathWWWRootNot = Path.Combine("img", agency.Name);

                if (!Directory.Exists(Path.Combine(path, partYearEventViewModel.DataYear)))
                {
                    Directory.CreateDirectory(Path.Combine(path, partYearEventViewModel.DataYear));
                }
                path           = Path.Combine(path, partYearEventViewModel.DataYear);
                pathWWWRootNot = Path.Combine(pathWWWRootNot, partYearEventViewModel.DataYear);

                if (!Directory.Exists(Path.Combine(path, partYearEventViewModel.NumberYearEvent.ToString())))
                {
                    Directory.CreateDirectory(Path.Combine(path, partYearEventViewModel.NumberYearEvent.ToString()));
                }

                path           = Path.Combine(path, partYearEventViewModel.NumberYearEvent.ToString());
                pathWWWRootNot = Path.Combine(pathWWWRootNot, partYearEventViewModel.NumberYearEvent.ToString());

                string fullFileNameImageFile;
                string fullFileNamePdfFile;

                string extensionImageFile = Path.GetExtension(partYearEventViewModel.ImageFile.FileName);
                string extensionPdfFile   = Path.GetExtension(partYearEventViewModel.PdfFile.FileName);

                string fileNameImageFile = $"ГП_image_{agency.Name}_{partYearEventViewModel.NumberYearEvent}_{DateTime.Now:dd-MM-yyyy-hh-mm-ss}{extensionImageFile}";
                string fileNamePdfFile   = $"ГП_pdf_{agency.Name}_{partYearEventViewModel.NumberYearEvent}_{DateTime.Now:dd-MM-yyyy-hh-mm-ss}{extensionPdfFile}";

                using (var fileStream = new FileStream(Path.Combine(path, fileNameImageFile), FileMode.Create))
                {
                    await partYearEventViewModel.ImageFile.CopyToAsync(fileStream);

                    await fileStream.FlushAsync();

                    fullFileNameImageFile = "\\" + Path.Combine(pathWWWRootNot, fileNameImageFile);
                }

                using (var fileStream = new FileStream(Path.Combine(path, fileNamePdfFile), FileMode.Create))
                {
                    await partYearEventViewModel.PdfFile.CopyToAsync(fileStream);

                    await fileStream.FlushAsync();

                    fullFileNamePdfFile = "\\" + Path.Combine(pathWWWRootNot, fileNamePdfFile);
                }

                PartYearEvent partYearEvent = new PartYearEvent()
                {
                    YearEventId     = partYearEventViewModel.YearEventId,
                    NumberYearEvent = partYearEventViewModel.NumberYearEvent,
                    Done            = partYearEventViewModel.Done,
                    PriceB          = partYearEventViewModel.PriceB,
                    PriceNotB       = partYearEventViewModel.PriceNotB,
                    DateTime        = DateTime.Now,
                    UserNameSent    = User.Identity.Name,
                    Img             = fullFileNameImageFile,
                    Pdf             = fullFileNamePdfFile
                };
                await db.PartYearEvents.AddAsync(partYearEvent);

                await db.SaveChangesAsync();
            }
            return(RedirectToAction("Index", new { userName = User.Identity.Name, dataYear = partYearEventViewModel.DataYear }));
        }