Ejemplo n.º 1
0
        public async Task <IWrappedResponse> AddToCustomer(UserAddToCustomerRequest request)
        {
            var user = _userRepo.FindAll().IgnoreQueryFilters().Include(u => u.Customers)
                       .SingleOrDefault(u => !u.IsDeleted && u.Id == request.UserId);
            var customer = _customerRepo.FindAll().IgnoreQueryFilters().SingleOrDefault(c => !c.IsDeleted && c.Id == request.CustomerId);

            if (user != null && customer != null)
            {
                //Check if Relation already exists
                if (user.Customers.Any(c => c.CustomerId == request.CustomerId))
                {
                    return(Ok(_mapper.Map <User>(user)));
                }
                //Else add new Relation
                user.Customers.Add(new Olma.UserCustomerRelation()
                {
                    User = user, Customer = customer
                });
                _userRepo.Save();

                // Eventuelle ungültiger Permission Cache
                await _permissionsService.UpdateCache();

                return(Ok(_mapper.Map <User>(user)));
            }
            return(Failed <User>());
        }
        //[HasPermission(typeof(CanUpdateCustomerUserRequirement))] TODO User management Permissions
        public Task <ActionResult <User> > AddToCustomer([FromRoute] int id, [FromBody] int customerId)
        {
            var request = new UserAddToCustomerRequest()
            {
                UserId = id, CustomerId = customerId
            };

            return(this._userService.AddToCustomer(request).Convert <User>(this));
        }