public async Task <Response> SetUserIcon(string id) { var user = _giraf._context.Users.FirstOrDefault(u => u.Id == id); if (user == null) { return(new ErrorResponse(ErrorCode.UserNotFound)); } // check access rights if (!(await _authentication.HasEditOrReadUserAccess(await _giraf._userManager.GetUserAsync(HttpContext.User), user))) { return(new ErrorResponse <GirafUserDTO>(ErrorCode.NotAuthorized)); } byte[] image = await _giraf.ReadRequestImage(HttpContext.Request.Body); if (image.Length < IMAGE_CONTENT_TYPE_DEFINITION) { return(new ErrorResponse(ErrorCode.MissingProperties, "Image")); } user.UserIcon = image; await _giraf._context.SaveChangesAsync(); return(new Response()); }
public async Task <Response <WeekPictogramDTO> > SetPictogramImage(long id) { var user = await _giraf.LoadBasicUserDataAsync(HttpContext.User); if (user == null) { return(new ErrorResponse <WeekPictogramDTO>(ErrorCode.UserNotFound)); } //Attempt to fetch the pictogram from the database. var pictogram = await _giraf._context .Pictograms .Where(p => p.Id == id) .FirstOrDefaultAsync(); if (pictogram == null) { return(new ErrorResponse <WeekPictogramDTO>(ErrorCode.PictogramNotFound)); } if (!CheckOwnership(pictogram, user).Result) { return(new ErrorResponse <WeekPictogramDTO>(ErrorCode.NotAuthorized)); } //Update the image byte[] image = await _giraf.ReadRequestImage(HttpContext.Request.Body); if (image.Length == 0) { pictogram.Image = null; } else { pictogram.Image = image; } await _giraf._context.SaveChangesAsync(); return(new Response <WeekPictogramDTO>(new WeekPictogramDTO(pictogram))); }