コード例 #1
0
ファイル: UserController.cs プロジェクト: Tellus/web-api
        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());
        }
コード例 #2
0
        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)));
        }