Esempio n. 1
0
        public async Task <HttpResponseMessage> RemoveStaffAssignment(AccountRoleRequest accountRoleRequest)
        {
            Services.Log.Info("Remove Staff Assignment Request [API]");
            string responseText;

            stranddContext context = new stranddContext();

            if (accountRoleRequest.RoleAssignment == null)
            {
                responseText = "No Role Assignment Defined"; Services.Log.Warn(responseText); return(this.Request.CreateResponse(HttpStatusCode.BadRequest, responseText));
            }

            AccountRole lookupAccountRole = await context.AccountRoles.Where(a => a.UserProviderID == accountRoleRequest.UserProviderID)
                                            .Where(b => b.CompanyGUID == accountRoleRequest.CompanyGUID)
                                            .Where(c => c.RoleAssignment == accountRoleRequest.RoleAssignment).SingleOrDefaultAsync();

            if (lookupAccountRole == null)
            {
                responseText = "Staff Assignment Not Found";
                Services.Log.Info(responseText);
                return(this.Request.CreateResponse(HttpStatusCode.NotFound, responseText));
            }
            else
            {
                //Staff Assignment Removal
                context.AccountRoles.Remove(lookupAccountRole);
                await context.SaveChangesAsync();

                responseText = "Staff Assignment Successfully Removed";
                Services.Log.Info(responseText);
                return(this.Request.CreateResponse(HttpStatusCode.Created, responseText));
            }
        }
Esempio n. 2
0
        public async Task <HttpResponseMessage> NewStaffAssignment(AccountRoleRequest accountRoleRequest)
        {
            Services.Log.Info("New Staff Assignment Request [API]");
            string responseText;

            stranddContext context = new stranddContext();

            //Checks for existing Link References
            Account lookupAccount = await context.Accounts.Where(a => a.ProviderUserID == accountRoleRequest.UserProviderID).SingleOrDefaultAsync();

            Company lookupCompany = await context.Companies.Where(a => a.Id == accountRoleRequest.CompanyGUID).SingleOrDefaultAsync();

            if (lookupAccount == null)
            {
                responseText = "Account not found [" + accountRoleRequest.UserProviderID + "]"; Services.Log.Warn(responseText); return(this.Request.CreateResponse(HttpStatusCode.BadRequest, responseText));
            }
            if (lookupCompany == null)
            {
                responseText = "Company not found [" + accountRoleRequest.CompanyGUID + "]"; Services.Log.Warn(responseText);  return(this.Request.CreateResponse(HttpStatusCode.BadRequest, responseText));
            }
            if (accountRoleRequest.RoleAssignment == null)
            {
                responseText = "No Role Assignment Defined"; Services.Log.Warn(responseText); return(this.Request.CreateResponse(HttpStatusCode.BadRequest, responseText));
            }

            AccountRole lookupAccountRole = await context.AccountRoles.Where(a => a.UserProviderID == accountRoleRequest.UserProviderID)
                                            .Where(b => b.CompanyGUID == accountRoleRequest.CompanyGUID)
                                            .Where(c => c.RoleAssignment == accountRoleRequest.RoleAssignment).SingleOrDefaultAsync();

            if (lookupAccountRole == null)
            {
                //Staff Assignment Creation
                AccountRole newAccountRole = new AccountRole
                {
                    Id             = Guid.NewGuid().ToString(),
                    RoleAssignment = accountRoleRequest.RoleAssignment,
                    CompanyGUID    = accountRoleRequest.CompanyGUID,
                    UserProviderID = accountRoleRequest.UserProviderID
                };

                context.AccountRoles.Add(newAccountRole);
                await context.SaveChangesAsync();

                responseText = "Staff Assignment Successfully Generated";
                Services.Log.Info(responseText);
                return(this.Request.CreateResponse(HttpStatusCode.Created, responseText));
            }
            else
            {
                responseText = "Staff Assignment Already Exists";
                Services.Log.Info(responseText);
                return(this.Request.CreateResponse(HttpStatusCode.OK, responseText));
            }
        }