public async Task <ActionResult> UpdateStatuse([FromRoute][Required] long locationId, [FromRoute][Required] long id, [FromQuery][BindRequired] string type, [FromBody] ConfigStatusReqModel model)
        {
            var res = await _configService.UpdateStatuse(locationId, _authHelpers.GetCurrentUserId().Value, id, type, model);

            return(StatusCode(res.GetStatusCode(), res.Result));
        }
Beispiel #2
0
        private async Task <ServiceResponseResult> SaveSpaceStatus(long locationId, long userId, ConfigStatusReqModel model)
        {
            var status = new SpaceStatus
            {
                CreatedBy     = userId,
                CreatedOn     = DateTime.UtcNow,
                Description   = model.Description,
                IsActive      = true,
                IsDefault     = model.IsDefault,
                LastUpdatedBy = userId,
                LastUpdatedOn = DateTime.UtcNow,
                LocationId    = locationId,
                Name          = model.Name
            };

            if (model.IsDefault)
            {
                await _context.Set <SpaceStatus>().FromSqlRaw($"Update dbo.SpaceStatus SET IsDefault = 0 WHERE OUTPUT INSERTED.* LocationId = {locationId}").ToListAsync();
            }

            _context.SpaceStatus.Add(status);
            await _context.SaveChangesAsync();

            return(new ServiceResponseResult
            {
                Result = status == null ? null : new StatusDetailsResponseModel
                {
                    Id = status.Id,
                    Name = status.Name,
                    Description = status.Description,
                    IsActive = status.IsActive,
                    IsDefault = status.IsDefault
                },
                StatusCode = System.Net.HttpStatusCode.OK
            });
        }
Beispiel #3
0
        public async Task <ServiceResponseResult> SaveStatuse(long locationId, long userId, string type, ConfigStatusReqModel model)
        {
            Logger.WriteInformation("Saving status.");
            switch (type.ToLower())
            {
            default:
            {
                return(new ServiceResponseResult
                    {
                        Result = new { Message = "Provide a valid type: Administrator, Device, Keyholder, Space" },
                        StatusCode = System.Net.HttpStatusCode.BadRequest
                    });
            }

            case "administrator":
            {
                return(await SaveAdminStatus(locationId, userId, model));
            }

            case "device":
            {
                return(await SaveDeviceStatus(locationId, userId, model));
            }

            case "keyholder":
            {
                return(await SaveKeyHolderStatus(locationId, userId, model));
            }

            case "space":
            {
                return(await SaveSpaceStatus(locationId, userId, model));
            }
            }
        }
Beispiel #4
0
        private async Task <ServiceResponseResult> UpdateAdminStatus(long locationId, long id, long userId, ConfigStatusReqModel model)
        {
            var status = await _context.UserStatus.FindAsync(id);

            if (status == null)
            {
                return(new ServiceResponseResult
                {
                    Result = new { Message = "Keyholder status not found" },
                    StatusCode = System.Net.HttpStatusCode.NotFound
                });
            }

            status.Name          = model.Name;
            status.Description   = model.Description;
            status.IsDefault     = model.IsDefault;
            status.IsActive      = true;
            status.LastUpdatedBy = userId;
            status.LastUpdatedOn = DateTime.UtcNow;

            if (model.IsDefault)
            {
                await _context.Set <UserStatus>().FromSqlRaw($"Update dbo.UserStatus SET IsDefault = 0 OUTPUT INSERTED.* WHERE LocationId = {locationId} and id != {id}").ToListAsync();
            }

            _context.UserStatus.Update(status);
            await _context.SaveChangesAsync();

            return(new ServiceResponseResult
            {
                Result = status == null ? null : new StatusDetailsResponseModel
                {
                    Id = status.Id,
                    Name = status.Name,
                    Description = status.Description,
                    IsActive = status.IsActive,
                    IsDefault = status.IsDefault
                },
                StatusCode = System.Net.HttpStatusCode.OK
            });
        }