/// <summary> /// Сохраняет, обновляет <see cref="AccessRole"/> роль пользователя в БД, /// не снимает уже обновленную роль с пользователя /// </summary> /// <returns></returns> public ServiceResponce SaveRole(AccessRoleModel model) { AccessRoles toSave = null; if (model.Id == 0) { toSave = new AccessRoles(); } else { toSave = _accessRep.GetOneById(model.Id); if (toSave == null) { return(ServiceResponce .FromFailed() .Add("error", "Role can't be update, because it does not exist")); } } toSave = AccessRoleModelHelper.UpdateAccessRole(toSave, model); if (toSave == null) { return(ServiceResponce .FromFailed() .Add("error", "Error while parsing AccessRoles in specified role")); } _accessRep.Save(toSave); return(ServiceResponce .FromSuccess() .Result(model.Id == 0 ? "Created" : "Updated")); }
/// <summary> /// Снимает метку "delete" пользователя с <paramref name="id"/> устанавливает статус System; /// </summary> /// <param name="id"></param> /// <returns></returns> public ServiceResponce MarkNotDeleted(int id) { User user = _userRep.FindOneById(id); if (user == null) { return(ServiceResponce .FromFailed() .Add("error", "user doesn't exist")); } if (!StatusService.CanChangeStatus(user, UserStatusType.MarkDeleted, true)) { return(ServiceResponce .FromFailed() .Add("error", "the user isn't deleted")); } if (_userRep.CountByCredentails(user.UserName, user.UserPhone) != 0) { return(ServiceResponce .FromFailed() .Add("error", "user with such email or phone already exists")); } StatusService.ChangeStatus(user, UserStatusType.System); _userRep.Save(user); return(ServiceResponce.FromSuccess()); }
/// <summary> /// Удалить имя антропометрической характеристики /// </summary> /// <param name="id"></param> /// <returns></returns> /// <exception cref="NotImplementedException"></exception> public ServiceResponce DeleteAntroNames(int id) { return(_personRepository.DeleteAntroName(id) ? ServiceResponce .FromSuccess() .Result("Antro names delete complete") : ServiceResponce .FromFailed() .Result($"Error delete Antro names with id = {id}")); }
/// <summary> /// Создает зарегестрированного пользователя /// </summary> /// <param name="model">Модель для регистрации пользователя</param> /// <returns>ServiceResponce</returns> public ServiceResponce CreateSystemUser(RegisterUserModel model) { if (!model.GeneratePassword && !PasswordService.IsPasswordAcceptable(model.Password)) { return(ServiceResponce .FromFailed() .Add("error", "Password not acceptable")); } model.Phone = PhoneService.PhoneConvert(model.Phone); if (_userRep.CountByCredentails(model.Email, model.Phone) != 0) { return(ServiceResponce .FromFailed() .Add("error", "User with this Email or Phone already exist")); } // Генерируем и хэшируем пароль string UnHashedPassword = model.Password; if (model.GeneratePassword) { UnHashedPassword = PasswordService.GeneratePasswordString(); } model.Password = PasswordService.GeneratePasswordHash(UnHashedPassword); User user = RegisterUserModelHelper.CreateUser(model); _userRep.Save(user); ServiceResponce response = ServiceResponce .FromSuccess() .Result("User registered") .Add("UserId", user.Id); if (model.GeneratePassword) { response.Add("GeneratedPassword", UnHashedPassword); } if (model.NotSendWelcome == false) { // Создаем задачу отправки сообщения в фоне и запускаем ее new Thread(send => { RegisteredEmailModel RegisteredEmailModel = RegisteredEmailModelHelper.GetRegisteredEmailModel(model, UnHashedPassword); string RegisteredText = _templateServ .Run("Emails/Registered", typeof(RegisteredEmailModel), RegisteredEmailModel); EmailService.SendMail(RegisteredEmailModel, RegisteredText); }).Start(); } return(response); }
/// <summary> /// Add or Update Person entity /// </summary> /// <param name="model"></param> /// <param name="userId"></param> /// <returns></returns> public ServiceResponce SavePerson(PersonModel model, int userId) { var person = PersonModelHelper.GetPerson(model); var res = _personRepository.SavePerson(person, userId); var response = res != null?ServiceResponce .FromSuccess() .Result("Person save") .Add("PersonId", person.Id) : ServiceResponce.FromFailed().Result("Error save person"); return(response); }
/// <see cref="IConcertService.SaveActor"/> public ServiceResponce SaveActor(ActorModel model) { var succes = ServiceResponce.FromSuccess().Result("Actor save complete"); var error = ServiceResponce.FromFailed().Result($"Error save actor"); var res = _concertRepository.AddActor(ConcertModelHelper.GetActor(model)); if (res != null) { succes.Add("ActorId", res.Id); } return(res != null ? succes : error); }
/// <see cref="IConcertService.SaveConcertTicket"/> public ServiceResponce SaveConcertTicket(ConcertTicketModel model) { var succes = ServiceResponce.FromSuccess().Result("Concert tickets save complete"); var error = ServiceResponce.FromFailed().Result($"Error save concert tickets"); var res = _concertRepository.SaveConcertTicket(ConcertModelHelper.GetConcertTicket(model)); if (res != null) { succes.Add("TicketsId", res.Id); } return(res != null ? succes : error); }
/// <summary> /// Delete Person entity /// </summary> /// <param name="id"></param> /// <returns></returns> public ServiceResponce DeletePerson(int id) { var res = _personRepository.DeletePerson(id); var response = res ? ServiceResponce .FromSuccess() .Result("Person delete") : ServiceResponce .FromFailed() .Result("Error delete person"); return(response); }
/// <summary> /// Delete Event entity /// </summary> /// <param name="id"></param> /// <returns></returns> public ServiceResponce DeleteEvent(int id) { var res = _eventRepository.DeleteEvent(id); var response = res ? ServiceResponce .FromSuccess() .Result("Event delete") : ServiceResponce .FromFailed() .Result("Error delete event"); return(response); }
/// <see cref="IConcertService.SaveSeriesName"/> public ServiceResponce SaveSeriesName(SeriesConcertModel model) { var res = _concertRepository.SaveSeriesName(ConcertModelHelper.GetSeriesName(model)); var response = res != null?ServiceResponce .FromSuccess() .Result("Event delete") : ServiceResponce .FromFailed() .Result("Error delete event"); return(response); }
/// <summary> /// Отсылает пользователю новый сгенерированный пароль по Email, /// если, конечно он зарегестрирован в системе /// </summary> /// <param name="model"></param> /// <returns></returns> public ServiceResponce RestorePassword(RestorePasswordModel model) { IList <User> users = _userRep.FindAllByCredentails(model.Email, model.Phone); if (users == null) { return(ServiceResponce .FromFailed() .Add("error", "user doesn't exist")); } /* if (users.Count > 1) * { * return ServiceResponce * .FromFailed() * .Add("error", "user doesn't exist"); * } */ User user = new User(); if (users.Count == 1) { foreach (User u in users) { user = u; } } string Password = PasswordService.GeneratePasswordString(); user.Password = PasswordService.GeneratePasswordHash(Password); _userRep.Save(user); new Thread(send => { RestorePasswordEmailModel RestorePasswordEmailModel = RestorePasswordEmailModelHelper.GetRestorePasswordEmailModel(user.UserName, Password); string RestoreText = _templateServ .Run("Emails/RestorePassword", typeof(RestorePasswordEmailModel), RestorePasswordEmailModel); if (!EmailService.SendMail(RestorePasswordEmailModel, RestoreText)) { user.UserStatuses.Description = "Restore password Email was not delivered"; user.UserStatuses.UpdateTime = DateTime.Now; } else { user.UserStatuses.Description = "Restore password Email was delivered at " + DateTime.Now; user.UserStatuses.UpdateTime = DateTime.Now; } }).Start(); return(ServiceResponce.FromSuccess()); }
/// <see cref="IPersonService.DeleteFactTypes"/> public ServiceResponce DeleteFactTypes(IEnumerable <PersonFactTypeModel> models) { if (models.Any(item => !_personRepository.DeleteFactType(item.Id))) { return(ServiceResponce .FromFailed() .Result($"Error delete fact type")); } return(ServiceResponce .FromSuccess() .Result("Fact type delete complete")); }
/// <see cref="IConcertService.SaveConcertProgramm(ConcertProgrammModel)"/> public ServiceResponce SaveConcertProgramm(ConcertProgrammModel model) { var succes = ServiceResponce.FromSuccess().Result("Concert programm save complete"); var error = ServiceResponce.FromFailed().Result($"Error save concert programm"); var res = _concertRepository.AddConcertProgramm( ConcertModelHelper.GetProgramm(model)); if (res != null) { succes.Add("ProgrammId", res.Id); } return(res != null ? succes : error); }
/// <see cref="IEventService.DeleteFacts"/> public ServiceResponce DeleteFacts(IEnumerable <EventFactModel> models) { if (models.Any(item => !_eventRepository.DeleteEventFact(item.Id))) { return(ServiceResponce .FromFailed() .Result($"Error delete fact")); } return(ServiceResponce .FromSuccess() .Result("Facts delete complete")); }
/// <summary> /// Удалить типы медиа /// </summary> /// <param name="models"></param> /// <returns></returns> public ServiceResponce DeleteMediaTypes(IEnumerable <MediaTypeModel> models) { if (models.Any(item => !_eventRepository.DeleteMediaType(item.Id))) { return(ServiceResponce .FromFailed() .Result($"Error delete media type")); } return(ServiceResponce .FromSuccess() .Result("Media type delete complete")); }
/// <summary> /// Удалить список медиа /// </summary> /// <param name="models"></param> /// <returns></returns> public ServiceResponce DeleteMedia(IEnumerable <PersonMediaModel> models) { if (models.Any(item => !_personRepository.DeleteMedia(item.Id))) { return(ServiceResponce .FromFailed() .Result($"Error delete media")); } return(ServiceResponce .FromSuccess() .Result("Media delete complete")); }
/// <summary> /// Удалить список описаний /// </summary> /// <param name="models"></param> /// <returns></returns> public ServiceResponce DeleteDescriptions(IEnumerable <PersonDescriptionModel> models) { if (models.Any(item => !_personRepository.DeleteDescription(item.Id))) { return(ServiceResponce .FromFailed() .Result($"Error delete description")); } return(ServiceResponce .FromSuccess() .Result("Descriptions delete complete")); }
/// <summary> /// Удалить ссылки /// </summary> /// <param name="models"></param> /// <returns></returns> public ServiceResponce DeleteSocialLink(IEnumerable <PersonSocialLinkModel> models) { if (models.Any(item => !_personRepository.DeleteSocialLink(item.Id))) { return(ServiceResponce .FromFailed() .Result($"Error delete SocialLink")); } return(ServiceResponce .FromSuccess() .Result("SocialLink delete complete")); }
/// <summary> /// Удалить связи /// </summary> /// <param name="models"></param> /// <returns></returns> public ServiceResponce DeleteConnection(IEnumerable <EventConnectionModel> models) { var result = _eventRepository.DeleteConnections(models.Select(o => new EventConnection { Id = o.Id }).ToList()); return(result ? ServiceResponce .FromSuccess() .Result("Connections delete complete") : ServiceResponce .FromFailed() .Result($"Error delete connections")); }
/// <summary> /// Добавить/Изменить имена антропометрических характеристик /// </summary> /// <param name="models"></param> /// <returns></returns> /// <exception cref="NotImplementedException"></exception> public ServiceResponce UpdateAntroNames(IEnumerable <PersonAntroNameModel> models) { foreach (var item in models) { var name = _personRepository.UpdateAntroName(new PersonAntroName { Id = item.Id, Name = item.Name }); if (name == null) { return(ServiceResponce.FromFailed().Result($"Error add {item.Name}")); } } return(ServiceResponce .FromSuccess() .Result("Antro names save complete")); }
/// <see cref="IConcertService.SaveGroup"/> public ServiceResponce SaveGroup(ActorGroupModel model) { var res = _concertRepository.SaveGroup(ConcertModelHelper.GetActorGroup(model)); var response = res != null?ServiceResponce .FromSuccess() .Result("Actor group save") : ServiceResponce .FromFailed() .Result("Error save actor group"); if (res != null) { response.Add("GroupId", res.Id); } return(response); }
/// <summary> /// Удалить антропометрические характеристики /// </summary> /// <param name="models"></param> /// <returns></returns> /// <exception cref="NotImplementedException"></exception> public ServiceResponce DeleteAntros(IEnumerable <PersonAntroModel> models) { var result = _personRepository.DeletePersonAntros(models.Select(o => new PersonAntro { Id = o.Id, id_Antro = o.IdAntro, id_Person = o.IdPerson, Value = o.Value }).ToList()); return(result ? ServiceResponce .FromSuccess() .Result("Antros delete complete") : ServiceResponce .FromFailed() .Result($"Error delete antros")); }
/// <summary> /// Добавить/обновить антропометрические характеристики для Person c Id = <paramref name="pesonId"/> /// </summary> /// <param name="pesonId"></param> /// <param name="models"></param> /// <param name="userId"></param> /// <returns></returns> public ServiceResponce UpdateAntros(int pesonId, IEnumerable <PersonAntroModel> models, int userId) { var result = _personRepository.AddPersonAntros( models.Select(o => new PersonAntro { Id = o.Id, id_Antro = o.IdAntro, id_Person = pesonId, Value = o.Value }).ToList(), userId); return(result ? ServiceResponce .FromSuccess() .Result("Antros save complete") : ServiceResponce .FromFailed() .Result($"Error save antros")); }
/// <summary> /// Удалить связи /// </summary> /// <param name="models"></param> /// <returns></returns> public ServiceResponce DeleteConnection(IEnumerable <PersonConnectionModel> models) { var result = _personRepository.DeleteConnections(models.Select(o => new PersonConnection { Id = o.Id, id_Person = o.id_Person, id_ConnectionType = o.id_ConnectionType, id_Event = o.id_Event, id_PersonConnectTo = o.id_PersonConnectTo }).ToList()); return(result ? ServiceResponce .FromSuccess() .Result("Connections delete complete") : ServiceResponce .FromFailed() .Result($"Error delete connections")); }
/// <see cref="IPersonService.UpdateFactTypes"/> public ServiceResponce UpdateFactTypes(IEnumerable <PersonFactTypeModel> models) { foreach (var item in models) { var result = _personRepository.UpdateFactType(new PersonFactType { Id = item.Id, Name = item.Name }); if (result == null) { return(ServiceResponce .FromFailed() .Result($"Error save fact type")); } } return(ServiceResponce .FromSuccess() .Result("Fatc type save complete")); }
/// <summary> /// Добавить/Изменить типы описаний /// </summary> /// <param name="models"></param> /// <returns></returns> public ServiceResponce UpdateDescriptionTypes(IEnumerable <PersonDescriptionTypeModel> models) { foreach (var item in models) { var result = _eventRepository.UpdateDescriptionType(new PersonDescriptionType { Id = item.Id, Name = item.Name }); if (result == null) { return(ServiceResponce .FromFailed() .Result($"Error save description type")); } } return(ServiceResponce .FromSuccess() .Result("Description type save complete")); }
/// <summary> /// Изменение пароля пользователя с идентификатором <paramref name="id" /> /// пользователем с Email <paramref name="currentUserEmail" />; /// В случае если пользователь меняет пароль самому себе он должен указать старый пароль /// </summary> /// <param name="id">Идентификатор пользователя для которого меняется пароль</param> /// <param name="currentUserEmail">Email польозователя который меняет пароль</param> /// <param name="model"></param> /// <returns></returns> public ServiceResponce ChangePassword(int id, string currentUserEmail, ChangePasswordModel model) { User user = _userRep.FindOneById(id); if (user == null) { return(ServiceResponce .FromFailed() .Add("error", "User with specified Id was not found")); } bool SelfChangePassword = false; if (user.UserName.Equals(currentUserEmail)) { SelfChangePassword = true; if (!user.Password.Equals(PasswordService.GeneratePasswordHash(model.OldPassword))) { return(ServiceResponce .FromFailed() .Add("error", "Incorrect OldPassword")); } } user.Password = PasswordService.GeneratePasswordHash(model.NewPassword); _userRep.Save(user); if (model.SendCopyPassword) { // Создаем задачу отправки сообщения в фоне и запускаем ее new Thread(send => { ChangePasswordEmailModel ChangePasswordEmailModel = ChangePasswordEmailModelHelper.GetChangePasswordEmailModel(user.UserName, model.NewPassword, SelfChangePassword); string ChangePasswordText = _templateServ .Run("Emails/ChangePassword", typeof(ChangePasswordEmailModel), ChangePasswordEmailModel); EmailService.SendMail(ChangePasswordEmailModel, ChangePasswordText); }).Start(); } return(ServiceResponce.FromSuccess()); }
/// <summary> /// Добавить/Изменить связи для Person c Id = <paramref name="pesonId"/> /// </summary> /// <param name="pesonId"></param> /// <param name="models"></param> /// <param name="userId"></param> /// <returns></returns> public ServiceResponce UpdateConnection(int pesonId, IEnumerable <PersonConnectionModel> models, int userId) { var result = _personRepository.AddConnections( models.Select(o => new PersonConnection { Id = o.Id, id_Person = pesonId, id_ConnectionType = o.id_ConnectionType, id_Event = o.id_Event, id_PersonConnectTo = o.id_PersonConnectTo, Description = o.Description }).ToList(), userId); return(result ? ServiceResponce .FromSuccess() .Result("Connections save complete") : ServiceResponce .FromFailed() .Result($"Error save connections")); }
/// <summary> /// Добавить/Изменить список описаний для Person c Id = <paramref name="pesonId"/> /// </summary> /// <param name="pesonId"></param> /// <param name="models"></param> /// <param name="userId"></param> /// <returns></returns> public ServiceResponce UpdateDescriptions(int pesonId, IEnumerable <PersonDescriptionModel> models, int userId) { if (models == null || models.Select(item => _personRepository.UpdateDescription(new PersonDescription { Id = item.Id, id_Person = pesonId, id_DescriptionType = item.id_DescriptionType, DescriptionText = item.DescriptionText, Status = item.Status }, userId)).Any(result => result == null)) { return(ServiceResponce .FromFailed() .Result($"Error save description")); } return(ServiceResponce .FromSuccess() .Result("Descriptions save complete")); }
/// <summary> /// Добавить/Изменить ссылки для Person c Id = <paramref name="pesonId"/> /// </summary> /// <param name="pesonId"></param> /// <param name="models"></param> /// <param name="userId"></param> /// <returns></returns> public ServiceResponce UpdateSocialLink(int pesonId, IEnumerable <PersonSocialLinkModel> models, int userId) { var result = _personRepository.UpdateSocialLinks( models.Select(o => new PersonSocialLink { Id = o.Id, id_Person = pesonId, id_SocialLinkType = o.IdSocialLinkType, Link = o.Link, Description = o.Description, Destination = (DestinationTypes)o.Destination }).ToList(), userId); return(result ? ServiceResponce .FromSuccess() .Result("SocialLink save complete") : ServiceResponce .FromFailed() .Result($"Error save SocialLink")); }