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)); }
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 }); }
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)); } } }
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 }); }