Пример #1
0
        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));
            }
        }
Пример #2
0
        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());
        }
Пример #3
0
 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
         }
     });
 }
Пример #4
0
        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());
        }