Пример #1
0
        public object EditTeacher(AddTeacherCommand data)
        {
            var currUser = dispatcher.Query(new GetEntitiesQuery<Teacher>()).First(t => RouteData != null && t.Email == RouteData.Values["user"].ToString());
            if (currUser.IsAdmin != null && (bool)!currUser.IsAdmin)
            {
                Response.SuppressFormsAuthenticationRedirect = true;
                Response.TrySkipIisCustomErrors = true;
                Response.StatusCode = 401;
                return "AutorizationFailed";
            }

            if (!data.Id.IsEmpty())
            {
                Response.TrySkipIisCustomErrors = true;
                Response.StatusCode = 400;
                return "IdIsEmpty";
            }
            var teacher = dispatcher.Query(new GetEntityByIdQuery<Teacher>(data.Id));
            if (teacher == null)
            {
                Response.TrySkipIisCustomErrors = true;
                Response.StatusCode = 400;
                return "NonExistent";
            }

            var message = "";

            teacher.FullName = data.FullName != null || data.FullName != "" ? data.FullName : teacher.FullName;
            teacher.Email = data.Email != null || data.Email != "" ? data.Email : teacher.Email;
            teacher.Education = data.Education != null || data.Education != "" ? data.Education : teacher.Education;
            teacher.ExperienceInYears = data.ExperienceInYears != null || data.ExperienceInYears != "" ? data.ExperienceInYears : teacher.ExperienceInYears;
            teacher.Description = data.Description != null || data.Description != "" ? data.Description : teacher.Description;
            teacher.City = data.City != null || data.City != "" ? data.City : teacher.City;
            teacher.IsRussian = data.IsRussian;

            if (data.Lenguages != null)
            {
                var lenguages =
                    data.Lenguages.Select(lenguageId => dispatcher.Query(new GetEntityByIdQuery<Language>(lenguageId)))
                        .ToList();
                teacher.Lenguages = lenguages;
            }

            if (data.ImageFile != null && data.ImageFile.IsEmpty())
            {
                var file = data.ImageFile;
                if (file != null && file.ContentLength != 0)
                {
                    var filename = teacher.Email + Path.GetExtension(file.FileName);
                    const string imageDirectory = "Content\\images\\";
                    var path = AppDomain.CurrentDomain.BaseDirectory + imageDirectory;

                    if (!Directory.Exists(path))
                    {
                        Directory.CreateDirectory(path);
                    }
                    file.SaveAs(path + filename);
                    teacher.ImagePath = "\\" + imageDirectory + filename;

                }
                else
                {
                    Response.TrySkipIisCustomErrors = true;
                    Response.StatusCode = 400;
                    message = "Изображение не загружено!";
                }
            }
            else
            {
                Response.TrySkipIisCustomErrors = true;
                Response.StatusCode = 400;
                message = "Изображение не загружено!";
            }

            if (data.AudioFile != null && data.AudioFile.IsEmpty())
            {
                var file = data.AudioFile;
                if (file != null && file.ContentLength != 0)
                {
                    var filename = teacher.Email + Path.GetExtension(file.FileName);
                    const string audioDirectory = "Content\\AudioSamples\\";
                    var path = AppDomain.CurrentDomain.BaseDirectory + audioDirectory;

                    if (!Directory.Exists(path))
                    {
                        Directory.CreateDirectory(path);
                    }
                    file.SaveAs(path + filename);
                    teacher.AudioPath = "\\" + audioDirectory + filename;
                }
            }
            if (Response.StatusCode == 400)
                return message;

            dispatcher.Push(new EditUserCommand(teacher));

            Response.StatusCode = 200;
            var teachers = dispatcher.Query(new GetEntitiesQuery<Teacher>());

            return PartialView("Teachers/_AdminTeachersTable", teachers);
        }
Пример #2
0
        public object AddUser(AddTeacherCommand data)
        {
            if (Request.Cookies[FormsAuthentication.FormsCookieName] != null && !EnumerableExtensionsForConventions.IsEmpty(Request.Cookies[FormsAuthentication.FormsCookieName].ToString()))
            {
                var currUser = dispatcher.Query(new GetEntitiesQuery<Teacher>()).First(teacher => RouteData != null && teacher.Email == RouteData.Values["user"].ToString());

                if (currUser?.IsAdmin == null || currUser.IsAdmin != null && (bool)!currUser.IsAdmin)
                {
                    Response.SuppressFormsAuthenticationRedirect = true;
                    Response.TrySkipIisCustomErrors = true;
                    Response.StatusCode = 401;
                    return "Ошибка доступа!";
                }
            }

            var user = new Teacher();
            if (!data.Email.IsEmpty())
                user.Email = data.Email;
            else
            {
                Response.TrySkipIisCustomErrors = true;
                Response.StatusCode = 400;
                return "Некорректный E-mail";
            }
            var message = "";
            var random = new Random();

            user.FullName = data.FullName;
            user.City = data.City;
            user.ExperienceInYears = data.ExperienceInYears;
            user.Education = data.Education;
            user.Description = data.Description;
            user.IsRussian = data.IsRussian;
            user.Password = Convert.ToString(random.Next(100000, 999999));

            if (data.Lenguages != null)
            {
                var lenguages =
                    data.Lenguages.Select(lenguageId => dispatcher.Query(new GetEntityByIdQuery<Language>(lenguageId)))
                        .ToList();
                user.Lenguages = lenguages;
            }

            if (data.ImageFile != null && data.ImageFile.IsEmpty())
            {
                var file = data.ImageFile;
                if (file != null && file.ContentLength != 0)
                {
                    var filename = user.Email + Path.GetExtension(file.FileName);
                    const string imageDirectory = "Content\\images\\";
                    var path = AppDomain.CurrentDomain.BaseDirectory + imageDirectory;

                    if (!Directory.Exists(path))
                    {
                        Directory.CreateDirectory(path);
                    }
                    file.SaveAs(path + filename);
                    user.ImagePath = "\\" + imageDirectory + filename;
                }
                else
                {
                    Response.TrySkipIisCustomErrors = true;
                    Response.StatusCode = 400;
                    message = "Изображение не загружено!";
                }
            }
            else
            {
                Response.TrySkipIisCustomErrors = true;
                Response.StatusCode = 400;
                message = "Изображение не загружено!";
            }

            if (data.AudioFile != null && data.AudioFile.IsEmpty())
            {
                var file = data.AudioFile;
                if (file != null && file.ContentLength != 0)
                {
                    var filename = user.Email + Path.GetExtension(file.FileName);
                    const string audioDirectory = "Content\\AudioSamples\\";
                    var path = AppDomain.CurrentDomain.BaseDirectory + audioDirectory;

                    if (!Directory.Exists(path))
                    {
                        Directory.CreateDirectory(path);
                    }
                    file.SaveAs(path + filename);
                    user.AudioPath = "\\" + audioDirectory + filename;
                }
                else
                {
                    user.AudioPath = null;
                }
            }
            else
            {
                user.AudioPath = null;
            }

            if (Response.StatusCode == 400)
                return message;

            Registration(user);

            Response.StatusCode = 200;
            var teachers = dispatcher.Query(new GetEntitiesQuery<Teacher>());

            return PartialView("Teachers/_AdminTeachersTable", teachers);
        }