Beispiel #1
0
        public async Task <IHttpActionResult> UnLink(Guid organisationId, Guid uuid)
        {
            try
            {
                //get a user an make sure he is not an org user!
                var user = await new MapHiveUser().ReadAsync(_dbCtx, uuid);
                if (
                    user == null || (user.IsOrgUser && user.ParentOrganisationId == organisationId) ||
                    user.UserOrgId == organisationId    //also avoid removing own org of a user!
                    )
                {
                    throw MapHive.Server.Core.DataModel.Validation.Utils.GenerateValidationFailedException(nameof(MapHiveUser), MapHive.Server.Core.DataModel.Validation.ValidationErrors.OrgOwnerDestroyError);
                }



                //not providing a user role will effectively wipe out user assignment
                user.OrganisationRole = null;
                await this.OrganisationContext.ChangeOrganisationUserRole(_dbCtx, user, CustomUserAccountService.GetInstance("MapHiveMbr"));

                OrganisationContext.RemoveLink(user);
                await OrganisationContext.UpdateAsync(_dbCtx);

                return(Ok());
            }
            catch (Exception ex)
            {
                return(HandleException(ex));
            }
        }
Beispiel #2
0
        public async Task <IHttpActionResult> Get(Guid organisationId, string sort = null, string filter = null, int start = 0,
                                                  int limit = 25)
        {
            try
            {
                var users = await OrganisationContext.GetOrganisationAssets <MapHiveUser>(_dbCtx, sort, filter, start, limit);

                if (users == null)
                {
                    return(NotFound());
                }

                var roles2users = await OrganisationContext.GetOrgRoles2UsersMap(_dbCtx);

                foreach (var user in users.Item1)
                {
                    user.OrganisationRole = OrganisationContext.GetUserOrgRole(roles2users, user.Uuid);
                }

                AppendTotalHeader(users.Item2);
                return(Ok(users.Item1));
            }
            catch (Exception ex)
            {
                return(HandleException(ex));
            }
        }
 public async Task <IHttpActionResult> DeleteAsync(Guid uuid)
 {
     if (await OrganisationContext.IsOrganisationAsset(_dbCtx, uuid))
     {
         return(await base.DeleteAsync(uuid));
     }
     return(NotFound());
 }
Beispiel #4
0
 public async Task <IHttpActionResult> PutAsync(T obj, Guid uuid)
 {
     if (await OrganisationContext.IsOrganisationAsset(_dbCtx, uuid))
     {
         return(await base.PutAsync(obj, uuid));
     }
     return(BadRequest());
 }
Beispiel #5
0
        public async Task <IHttpActionResult> PostAsync(T obj)
        {
            try
            {
                //create an obj and then link it to an org
                var entity = await obj.CreateAsync(_dbCtx);

                OrganisationContext.AddLink(entity);
                await OrganisationContext.UpdateAsync(_dbCtx);

                return(Ok(entity));
            }
            catch (Exception ex)
            {
                return(HandleException(ex));
            }
        }
Beispiel #6
0
        /// <summary>
        /// Peforms an equivalent of a standard crud controller Read single but for organisation objects. such objects must be explicitly linked to an organisation object in order to be retrievable
        /// </summary>
        /// <param name="uuid"></param>
        /// <returns></returns>
        public async Task <IHttpActionResult> GetAsync(Guid uuid)
        {
            try
            {
                var asset = await OrganisationContext.GetOrganisationAsset <T>(_dbCtx, uuid);

                if (asset == null)
                {
                    return(NotFound());
                }

                return(Ok(asset));
            }
            catch (Exception ex)
            {
                return(this.HandleException(ex));
            }
        }
Beispiel #7
0
        /// <summary>
        /// Peforms an equivalent of a standard crud Read controller but for organisation objects. such objects must be explicitly linked to an organisation object in order to be retrievable
        /// </summary>
        /// <param name="sort"></param>
        /// <param name="filter"></param>
        /// <param name="start"></param>
        /// <param name="limit"></param>
        /// <returns></returns>
        public async Task <IHttpActionResult> GetAsync(string sort = null, string filter = null,
                                                       int start   = 0,
                                                       int limit   = 25)
        {
            try
            {
                var assets = await OrganisationContext.GetOrganisationAssets <T>(_dbCtx, sort, filter, start, limit);

                if (assets != null)
                {
                    AppendTotalHeader(assets.Item2);
                    return(Ok(assets.Item1));
                }

                return(NotFound());
            }
            catch (Exception ex)
            {
                return(this.HandleException(ex));
            }
        }
Beispiel #8
0
 public OrganisationController(OrganisationContext context)
 {
     _context = context;
 }
 public EmployeesController(OrganisationContext context)
 {
     _context = context;
 }
 public DBOperations()
 {
     oc = new OrganisationContext();
 }