public ProblemImageViewModel(ProblemImage image) { if (image != null) { ID = image.ID; Session = new SessionViewModel(image.Session); if (image.ParentImage != null) { ParentImage = new ProblemImageViewModel(image.ParentImage); } Title = image.Title; Emotion = image.Emotion; Location = image.Location; Characteristic = image.Characteristic; IsMine = image.IsMine; IsIDo = image.IsIDo; IsForever = image.IsForever; LikeScore = image.LikeScore; IsHidden = image.IsHidden; } }
public IActionResult CreateClientProblemImage([FromBody] CreateUpdateProblemImageRequest request, long clientID, long problemID) { var user = UserService.Get(long.Parse(User.Identity.Name)); if (user == null) { return(NotFound(new ResponseModel { Success = false, Message = "Пользователь не найден" })); } var specialist = SpecialistService.GetSpecialistFromUser(user); if (specialist == null) { return(NotFound(new ResponseModel { Success = false, Message = "Специалист не найден" })); } var client = UserService.Get(clientID); if (client == null) { return(NotFound(new ResponseModel { Success = false, Message = "Клиент не найден" })); } var problem = ProblemService.Get(problemID); if (problem == null) { return(NotFound(new ResponseModel { Success = false, Message = "Проблема не найдена" })); } if (problem.User != client) { return(BadRequest(new ResponseModel { Success = false, Message = "Ошибка доступа" })); } var session = SessionService.GetCurrentSession(problem); if (session == null) { return(NotFound(new ResponseModel { Success = false, Message = "Активная сессия не найдена" })); } if (session.Problem != problem) { return(BadRequest(new ResponseModel { Success = false, Message = "Ошибка доступа" })); } var problemImage = new ProblemImage { Session = session, Title = request.Title, Emotion = request.Emotion, Characteristic = request.Characteristic, Location = request.Location, LikeScore = request.LikeScore, IsMine = request.IsMine, IsIDo = request.IsIDo, IsForever = request.IsForever, IsHidden = false }; if (request.ParentImageID != 0) { var parentImage = ProblemImageService.Get(request.ParentImageID); if (parentImage == null) { return(NotFound(new ResponseModel { Success = false, Message = "Зависимость не найдена" })); } problemImage.ParentImage = parentImage; } ProblemImageService.Create(problemImage); var problemImages = ProblemImageService.GetProblemImages(problem) .Select(x => new ProblemImageViewModel(x)) .ToList(); return(Ok(new DataResponse <List <ProblemImageViewModel> > { Data = problemImages })); }