public async Task <ActionResult> UpdateActivityStatus(UpdateActivityStatusRequest request) { _memoryCache.TryGetValue(_activitystatus, out bool status); if (request.Activity != status) { _memoryCache.Set(_lastactivitystatusset, DateTime.Now); } _memoryCache.Set(_activitystatus, request.Activity); _memoryCache.Set(_activityduration, request.Duration); try { _memoryCache.TryGetValue(_lastactivitystatusset, out DateTime? lastActivityStatusSet); await _hubContext.Clients.All.ActivityUpdated(request.Activity, request.Duration, lastActivityStatusSet); } catch (Exception) { } return(Ok()); }
public UpdateActivityStatusResponse UpdateActivityStatusByUser(UpdateActivityStatusRequest updateActivityStatusRequest) { UpdateActivityStatusResponse resp = new UpdateActivityStatusResponse(); List<SqlParameter> sqlParam = new List<SqlParameter>(); DBUtility.AddSqlParam(sqlParam, "@Status", SqlDbType.NVarChar, updateActivityStatusRequest.ActivityStatusName); string sqlStr1 = @"select Id from UserActivityStatus where Status =@Status"; int activityStatusId = 0; DataSet ds = DBUtility.ExecuteDataset(sqlStr1, sqlParam); if (DBUtility.hasResult(ds)) { activityStatusId = Convert.ToInt32(ds.Tables[0].Rows[0]["Id"]); } sqlParam.Clear(); DBUtility.AddSqlParam(sqlParam, "@UserInfo", SqlDbType.BigInt, updateActivityStatusRequest.UserId); DBUtility.AddSqlParam(sqlParam, "@Activity", SqlDbType.BigInt, updateActivityStatusRequest.ActivityId); string sqlStr2 = @"select * from UserActivity where UserInfo =@UserInfo and Activity =@Activity "; try { DataSet ds2 = DBUtility.ExecuteDataset(sqlStr2, sqlParam); if (DBUtility.hasResult(ds2)) { sqlParam.Clear(); DBUtility.AddSqlParam(sqlParam, "@UserInfo", SqlDbType.BigInt, updateActivityStatusRequest.UserId); DBUtility.AddSqlParam(sqlParam, "@Activity", SqlDbType.BigInt, updateActivityStatusRequest.ActivityId); DBUtility.AddSqlParam(sqlParam, "@LastModifiedDate", SqlDbType.DateTime, DateTime.Now); DBUtility.AddSqlParam(sqlParam, "@Status", SqlDbType.BigInt, activityStatusId); string sqlStr3 = @"update UserActivity set Status = @Status, LastModifiedDate = @LastModifiedDate where UserInfo=@UserInfo and Activity=@Activity "; //if record exist, update it if (DBUtility.ExecuteNonQuery(sqlStr3, sqlParam) == 1) { resp.Result = true; resp.Message = "ActivityStatus successfully updated "; return resp; } else { // return "Database update failed."; throw new ServiceException("update database failed."); } } else { //record does not exist, insert a new one sqlParam.Clear(); DBUtility.AddSqlParam(sqlParam, "@UserInfo", SqlDbType.BigInt, updateActivityStatusRequest.UserId); DBUtility.AddSqlParam(sqlParam, "@Activity", SqlDbType.BigInt, updateActivityStatusRequest.ActivityId); DBUtility.AddSqlParam(sqlParam, "@Status", SqlDbType.BigInt, activityStatusId); DBUtility.AddSqlParam(sqlParam, "@CreatedOn", SqlDbType.DateTime, DateTime.Now.ToString(ConfigurationManager.AppSettings["DateFormat"])); DBUtility.AddSqlParam(sqlParam, "@LastModifiedDate", SqlDbType.DateTime, DateTime.Now.ToString(ConfigurationManager.AppSettings["DateFormat"])); DBUtility.AddSqlParam(sqlParam, "@LastModifiedBy", SqlDbType.NVarChar, "System"); string sqlStr4 = @"insert into UserActivity(UserInfo,Activity,Status,CreatedOn,LastModifiedDate,LastModifiedBy) values(@UserInfo,@Activity,@Status,@CreatedOn,@LastModifiedDate,@LastModifiedBy)"; if (DBUtility.ExecuteNonQuery(sqlStr4, sqlParam) == 1) { resp.Result = true; resp.Message = "ActivityStatus inserted"; return resp; } else { throw new ServiceException("insert into database failed."); } } } catch (ServiceException e) { throw e; } catch (Exception e) { throw e; } }