internal void SetStatus(string dataDir, WorkingStatusData workingStatus, bool defaultStatus = false) { lock (SyncRoot) { string dataFile = defaultStatus ? GetDefaultFile(dataDir) : GetCurrentFile(dataDir); var workingStatuses = new List <WorkingStatusData>(); if (File.Exists(dataFile)) { workingStatuses = JsonConvert.DeserializeObject <List <WorkingStatusData> >(File.ReadAllText(dataFile)); } var existingStatus = workingStatuses.SingleOrDefault(ws => ws.Email == workingStatus.Email); if (existingStatus != null) { existingStatus.StatusType = workingStatus.StatusType; } else { workingStatuses.Add(workingStatus); } File.WriteAllText(dataFile, JsonConvert.SerializeObject(workingStatuses, Formatting.Indented)); } }
public IHttpActionResult SetStatusDefault([FromUri] StatusType statusType, [FromBody] UserStatus userStatus) { var workingStatusData = new WorkingStatusData { StatusType = statusType, Email = userStatus.Email, StatusDetails = userStatus.StatusDetails }; StatusService.Instance.SetStatus(this.dataDir, workingStatusData, true); return(this.Ok()); }
private static UserStatusInfo ToUserStatusInfo(WorkingStatusData workingStatusData, bool isDefault) { return(new UserStatusInfo { Email = workingStatusData.Email, Status = new StatusInfo { StatusType = workingStatusData.StatusType, StatusDetails = workingStatusData.StatusDetails, InOffice = workingStatusData.StatusType == StatusType.WorkInOffice, Default = isDefault } }); }
public IHttpActionResult SetStatus([FromUri] StatusType statusType, [FromBody] UserStatus userStatus) { var workingStatusData = new WorkingStatusData { StatusType = statusType, Email = userStatus.Email, StatusDetails = userStatus.StatusDetails }; StatusService.Instance.SetStatus(this.dataDir, workingStatusData); NotificationHub.NotifyUsers(GetUserStatusInfo()); return(this.Ok()); }