public async Task <IActionResult> OnPostConfirmAsync(int?id)
        {
            if (id == null)
            {
                StatusMessage = "Error: Prašymas nerastas";
                return(Page());
            }

            EmployeeAppealSalon employeeAppealSalon = await _context.EmployeeAppealSalons.Where(r => r.Id == id.Value).FirstOrDefaultAsync();

            if (employeeAppealSalon == null)
            {
                StatusMessage = "Error: Prašymas nerastas";
                return(Page());
            }

            var user = await _context.Employees.Where(r => r.Id == employeeAppealSalon.EmployeeId).FirstOrDefaultAsync();

            if (user == null)
            {
                StatusMessage = "Error: Tokio darbuotojo nėra.";
                return(Page());
            }
            if (user.SalonId != null)
            {
                StatusMessage = "Error: Darbuotojas turi saloną.";
                return(Page());
            }

            var salon = await _context.Salons.Where(r => r.Id == employeeAppealSalon.SalonId).FirstOrDefaultAsync();

            if (salon == null)
            {
                StatusMessage = "Error: Tokio salono nėra.";
                return(Page());
            }

            var employeeAppealSalons = await _context.EmployeeAppealSalons.Where(r => r.EmployeeId == employeeAppealSalon.EmployeeId).ToListAsync();

            _context.EmployeeAppealSalons.RemoveRange(employeeAppealSalons);
            user.Salon = salon;

            await _context.EmployeeSchedules.Where(r => r.EmployeeId == user.Id).ForEachAsync(day =>
            {
                day.StartTime      = new TimeSpan(0, 0, 0);
                day.EndTime        = new TimeSpan(0, 0, 0);
                day.BreakStartTime = new TimeSpan(0, 0, 0);
                day.BreakEndTime   = new TimeSpan(0, 0, 0);
                day.IsTakingBreak  = false;
                day.IsWorking      = false;
            });

            await _context.SaveChangesAsync();


            return(RedirectToPage());
        }
        public async Task <IActionResult> OnPostInsertAsync()
        {
            if (!ModelState.IsValid)
            {
                StatusMessage = "Error: Tokio salono nėra.";
                return(RedirectToPage());
            }
            var user = await _userManager.GetUserAsync(User);

            EmployeeAppealSalon.EmployeeId  = user.Id;
            EmployeeAppealSalon.CreatedDate = DateTime.Now;
            _context.EmployeeAppealSalons.Add(EmployeeAppealSalon);

            await _context.SaveChangesAsync();

            StatusMessage = "Prašymas pateiktas salono administratoriams.";

            return(RedirectToPage());
        }
示例#3
0
        public async Task <IActionResult> OnPostInsertAsync()
        {
            var user = await _userManager.GetUserAsync(User);

            if (!ModelState.IsValid || UploadPicture == null)
            {
                return(Page());
            }

            if (Tools.FileImageCheck.IsImage(UploadPicture))
            {
                Image image    = Image.FromStream(UploadPicture.OpenReadStream(), true, true);
                var   newImage = new Bitmap(200, 200);
                using (var g = Graphics.FromImage(newImage))
                {
                    g.DrawImage(image, 0, 0, 200, 200);
                }
                ImageConverter converter = new ImageConverter();
                EmployeePicture.Picture = (byte[])converter.ConvertTo(newImage, typeof(byte[]));
            }
            else
            {
                StatusMessage = "Error: Įkeltas failas neatpažįstamas kaip nuotrauka.";
                return(RedirectToPage());
            }
            EmployeePicture.ModifiedDate = DateTime.Now;
            EmployeePicture.EmployeeId   = user.Id;
            if (_context.EmployeePictures.Any(r => r.EmployeeId == user.Id))
            {
                EmployeePicture.Id = await _context.EmployeePictures.Where(r => r.EmployeeId == user.Id).Select(r => r.Id).FirstOrDefaultAsync();

                _context.Attach(EmployeePicture).State = EntityState.Modified;
            }
            else
            {
                _context.EmployeePictures.Add(EmployeePicture);
            }
            await _context.SaveChangesAsync();

            StatusMessage = "Jūsų nuotrauka buvo pakeista.";

            return(RedirectToPage());
        }
示例#4
0
        public async Task <IActionResult> OnPostAsync()
        {
            if (!ModelState.IsValid)
            {
                return(Page());
            }

            _context.JobTitles.Add(JobTitle);
            await _context.SaveChangesAsync();

            return(RedirectToPage());
        }
        public async Task <IActionResult> OnPostAsync(int?userId, int?salonId, bool?isSelected)
        {
            if (userId == null || salonId == null || isSelected == null)
            {
                return(RedirectToPage("./Index"));
            }
            var user = await _userManager.FindByIdAsync(userId.Value.ToString());

            if (user == null)
            {
                return(NotFound("Nerastas toks vartotojas."));
            }

            if (!await _userManager.IsInRoleAsync(user, "Staff"))
            {
                return(NotFound());
            }

            if (isSelected.Value)
            {
                var staffSalonEntry = await _context.StaffSalons
                                      .Where(r => r.StaffId == userId.Value && r.SalonId == salonId.Value).FirstOrDefaultAsync();

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

                _context.StaffSalons.Remove(staffSalonEntry);
            }
            else if (!isSelected.Value)
            {
                StaffSalon         = new StaffSalon();
                StaffSalon.SalonId = salonId.Value;
                StaffSalon.StaffId = userId.Value;
                _context.Add(StaffSalon);
            }
            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateException)
            {
                return(NotFound("Nepavyko atnaujinti."));
            }
            return(RedirectToPage("./AssignStaffToSalonsEdit", new { id = userId.Value }));
        }
示例#6
0
        public async Task <IActionResult> OnPostCreateNotificationAsync()
        {
            int    userId = PostDataValues.UserId;
            string link   = PostDataValues.Link;
            {
                MemoryStream stream = new MemoryStream();
                Request.Body.CopyTo(stream);
                stream.Position = 0;
                using (StreamReader reader = new StreamReader(stream))
                {
                    string requestBody = reader.ReadToEnd();
                    if (requestBody.Length > 0)
                    {
                        var settings = new JsonSerializerSettings
                        {
                            NullValueHandling     = NullValueHandling.Ignore,
                            MissingMemberHandling = MissingMemberHandling.Ignore,
                        };
                        try
                        {
                            var obj = JsonConvert.DeserializeObject <PostData>(requestBody, settings);
                            if (obj != null && !Tools.Comparer.IsDefaultValue(obj.UserId) &&
                                !Tools.Comparer.IsDefaultValue(obj.Link))
                            {
                                userId = obj.UserId;
                                link   = obj.Link;

                                var notification = new Notification(userId, link, (NotiflicationType)2);
                                _context.Add(notification);
                                await _context.SaveChangesAsync();
                            }
                            else
                            {
                                throw new Exception("Tuščios vertės buvo perduotos");
                            }
                        }
                        catch (Exception e) { return(BadRequest(e)); }
                    }
                }
                return(new OkResult());
            }
        }
示例#7
0
        public async Task <IActionResult> OnPostAsync()
        {
            if (!ModelState.IsValid)
            {
                return(Page());
            }

            var user = await _userManager.GetUserAsync(User);

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

            //var salon = await _context.Salons.Where(r=>r.Id==Salon.Id).FirstOrDefaultAsync()
            var staffManagesSalonIds = await _context.StaffSalons
                                       .Where(r => r.StaffId == user.Id).Select(r => r.SalonId).ToListAsync();

            if (!staffManagesSalonIds.Contains(Salon.Id))
            {
                return(NotFound());
            }

            foreach (var day in Salon.SalonSchedule)
            {
                if (day.EndTime.Value.Minutes % 15 != 0 || day.StartTime.Value.Minutes % 15 != 0)
                {
                    StatusMessage = "Error: Minutės gali būti tik 15 min intervalu (0,15,30,45).";
                    return(Page());
                }
                if (day.EndTime == day.StartTime)
                {
                    day.IsWorking = false;
                }
                if (!day.IsWorking)
                {
                    day.StartTime = new TimeSpan(0, 0, 0);
                    day.EndTime   = new TimeSpan(0, 0, 0);
                }
                if (day.EndTime < day.StartTime)
                {
                    StatusMessage = $"Error: Salono darbo laikas yra vėlesnis nei pabaigos. Diena: {Tools.DayToWord.LithuanianDayWord(day.Day)}.";
                    return(Page());
                }
            }
            var employeeSchedule = await _context.EmployeeSchedules.Include(r => r.Employee).Where(r => r.Employee.SalonId == Salon.Id).ToListAsync();

            List <string> employeeNamesWithSchedulesChanged = new List <string>();

            foreach (var salonDay in Salon.SalonSchedule)
            {
                var takenDayListOfEmployeeSchedules = employeeSchedule.Where(r => r.Day == salonDay.Day);

                foreach (var employeeDay in takenDayListOfEmployeeSchedules)
                {
                    bool IsChangeMade = false;
                    if (employeeDay.StartTime < salonDay.StartTime)
                    {
                        employeeDay.StartTime = salonDay.StartTime;
                        IsChangeMade          = true;
                    }
                    if (employeeDay.EndTime > salonDay.EndTime)
                    {
                        employeeDay.EndTime = salonDay.EndTime;
                        IsChangeMade        = true;
                    }
                    if (IsChangeMade)
                    {
                        employeeNamesWithSchedulesChanged.Add(employeeDay.Employee.FullName);
                    }
                }
            }

            _context.Update(Salon);
            await _context.SaveChangesAsync();

            StatusMessage = !employeeNamesWithSchedulesChanged.Any() ? "Success: Salono darbo laikas atnaujintas"
            : $"Success: Salono darbo laikas atnaujintas ir pataisytas darbo laikas šiems darbuotojams: \r\n{String.Join(",", employeeNamesWithSchedulesChanged.Distinct())}";
            return(Page());
            //return RedirectToPage("./ManageSalons");
        }
示例#8
0
        public async Task <IActionResult> OnPostAsync()
        {
            if (!ModelState.IsValid)
            {
                return(Page());
            }
            Salon.SalonSchedule = new List <SalonSchedule>()
            {
                new SalonSchedule
                {
                    Day       = 1,
                    StartTime = new TimeSpan(0, 0, 0),
                    EndTime   = new TimeSpan(0, 0, 0)
                },
                new SalonSchedule
                {
                    Day       = 2,
                    StartTime = new TimeSpan(0, 0, 0),
                    EndTime   = new TimeSpan(0, 0, 0)
                }
                ,
                new SalonSchedule
                {
                    Day       = 3,
                    StartTime = new TimeSpan(0, 0, 0),
                    EndTime   = new TimeSpan(0, 0, 0)
                }
                ,
                new SalonSchedule
                {
                    Day       = 4,
                    StartTime = new TimeSpan(0, 0, 0),
                    EndTime   = new TimeSpan(0, 0, 0)
                }
                ,
                new SalonSchedule
                {
                    Day       = 5,
                    StartTime = new TimeSpan(0, 0, 0),
                    EndTime   = new TimeSpan(0, 0, 0)
                }
                ,
                new SalonSchedule
                {
                    Day       = 6,
                    StartTime = new TimeSpan(0, 0, 0),
                    EndTime   = new TimeSpan(0, 0, 0)
                }
                ,
                new SalonSchedule
                {
                    Day       = 7,
                    StartTime = new TimeSpan(0, 0, 0),
                    EndTime   = new TimeSpan(0, 0, 0)
                }
            };
            _context.Salons.Add(Salon);
            await _context.SaveChangesAsync();

            return(RedirectToPage("./AddSalons"));
        }
示例#9
0
        public async Task <IActionResult> OnPostAsync()
        {
            if (!ModelState.IsValid)
            {
                return(Page());
            }

            var user = await _userManager.GetUserAsync(User);

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

            var staffManagesSalonIds = await _context.StaffSalons
                                       .Where(r => r.StaffId == user.Id).Select(r => r.SalonId).ToListAsync();

            if (!staffManagesSalonIds.Contains(EmployeeVM.SalonId))
            {
                return(NotFound());
            }

            foreach (var day in EmployeeVM.EmployeeSchedule)
            {
                if (day.EndTime.Value.Minutes % 15 != 0 || day.StartTime.Value.Minutes % 15 != 0 ||
                    day.BreakEndTime.Value.Minutes % 15 != 0 || day.BreakStartTime.Value.Minutes % 15 != 0)
                {
                    StatusMessage = "Error: Minutės gali būti tik 15 min intervalu (0,15,30,45).";
                    return(Page());
                }
                if (day.EndTime == day.StartTime)
                {
                    day.IsWorking = false;
                }
                if (!day.IsWorking)
                {
                    day.StartTime      = new TimeSpan(0, 0, 0);
                    day.EndTime        = new TimeSpan(0, 0, 0);
                    day.BreakStartTime = new TimeSpan(0, 0, 0);
                    day.BreakEndTime   = new TimeSpan(0, 0, 0);
                    day.IsTakingBreak  = false;
                }
                else if (!day.IsTakingBreak)
                {
                    day.BreakStartTime = new TimeSpan(0, 0, 0);
                    day.BreakEndTime   = new TimeSpan(0, 0, 0);
                }
                if (day.EndTime < day.StartTime)
                {
                    StatusMessage = $"Error: Darbo laiko pradžia yra vėlesė nei pabaigos. Diena: {Tools.DayToWord.LithuanianDayWord(day.Day)}.";
                    return(Page());
                }
                if (day.BreakEndTime < day.BreakStartTime)
                {
                    StatusMessage = $"Error: Petraukos laikas prasideda vėliau, nei pabaiga. Diena: {Tools.DayToWord.LithuanianDayWord(day.Day)}.";
                    return(Page());
                }
                if (day.IsTakingBreak && (day.StartTime > day.BreakStartTime || day.EndTime < day.BreakEndTime))
                {
                    StatusMessage = $"Error: Petraukos laikas nėra tarp darbo laiko. Diena: {Tools.DayToWord.LithuanianDayWord(day.Day)}.";
                    return(Page());
                }
                if (day.IsWorking && (day.StartTime < EmployeeVM.SalonSchedule[day.Day.Value - 1].StartTime || day.EndTime > EmployeeVM.SalonSchedule[day.Day.Value - 1].EndTime))
                {
                    StatusMessage = $"Error: Darbuotojo darbo laikas nėra tarp salono darbo laiko. Diena: {Tools.DayToWord.LithuanianDayWord(day.Day)}.";
                    return(Page());
                }
            }
            Employee = await _context.Employees
                       .Include(e => e.EmployeeSchedule)
                       .FirstOrDefaultAsync(m => m.Id == EmployeeVM.Id);

            Employee.JobTitleId = EmployeeVM.JobTitleId;
            int index = 0;

            foreach (var day in Employee.EmployeeSchedule)
            {
                if (day.Day == EmployeeVM.EmployeeSchedule[index].Day)
                {
                    day.IsTakingBreak  = EmployeeVM.EmployeeSchedule[index].IsTakingBreak;
                    day.IsWorking      = EmployeeVM.EmployeeSchedule[index].IsWorking;
                    day.StartTime      = EmployeeVM.EmployeeSchedule[index].StartTime;
                    day.BreakStartTime = EmployeeVM.EmployeeSchedule[index].BreakStartTime;
                    day.EndTime        = EmployeeVM.EmployeeSchedule[index].EndTime;
                    day.BreakEndTime   = EmployeeVM.EmployeeSchedule[index].BreakEndTime;
                }
                index++;
            }
            var test = Employee.EmployeeSchedule.Where(r => r.Day == 5).FirstOrDefault();

            _context.Update(Employee);
            await _context.SaveChangesAsync();


            return(RedirectToPage("./ManageEmployees"));
        }