Пример #1
0
        // PATCH tables/User/48D68C86-6EA6-4C25-AA33-223FC9A27959
        public async Task <User> PatchUser(string id, Delta <User> patch)
        {
            var useraccount = await context.FestiUsers.Include(elem => elem.UserAccount).Where(elem => elem.Id == id)
                              .Select(elem => elem.UserAccount).FirstOrDefaultAsync();

            object post;
            object housenumber;
            object Email;
            object PhoneNumber;
            object Role;

            patch.TrySetPropertyValue("UserAccount", useraccount);
            patch.TryGetPropertyValue("Role", out Role);
            if (useraccount != null)
            {
                if (patch.TryGetPropertyValue("PhoneNumber", out PhoneNumber))
                {
                    useraccount.PhoneNumber = PhoneNumber.ToString();
                }
                if (patch.TryGetPropertyValue("Email", out Email))
                {
                    patch.GetEntity().UserAccount.UserName = Email.ToString();
                }

                if (Role != null)
                {
                    var list = await _authManager.GetRolesAsync(useraccount.Id);

                    await _authManager.RemoveFromRolesAsync(useraccount.Id, list.ToArray());

                    await _authManager.AddToRoleAsync(useraccount.Id, Role.ToString());
                }
            }
            patch.TryGetPropertyValue("HouseNumber", out housenumber);

            patch.TryGetPropertyValue("PostalCode", out post);

            return(await UpdateAsync(id, patch));
        }
Пример #2
0
        // POST tables/Inspector
        public async Task <IHttpActionResult> PostInspector(Inspector item)
        {
            var exist = await _authManager.FindByEmailAsync(item.Email);

            if (exist != null)
            {
                Debug.WriteLine("User email Bestaat al");
                return(null);
            }

            if (_geodanHelper.Error == null)
            {
                var result = await _geodanHelper.GetDocByAdres(null, null, item.HouseNumber, item.PostalCode);

                item.GeodanAdresId = result.id;
                item.Locx          = result.location.X;
                item.Locy          = result.location.Y;
            }
            else
            {
                item.GeodanAdresId = "InvalidID";

                item.Locx = 1.0;
                item.Locy = 1.0;
            }

            item.UserAccount = new UserAccount {
                UserName = item.Email, Email = item.Email, PhoneNumber = item.Phone
            };
            await _authManager.CreateAsync(item.UserAccount, "password");

            await _authManager.AddToRoleAsync(item.UserAccount.Id, "Inspector");

            Inspector current = await InsertAsync(item);

            await _emailService.SendChangePasswordMailAsync(item);

            return(CreatedAtRoute("Tables", new { id = current.Id }, current));
        }