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); }
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); }