public IEnumerable <SyncStatus> RetrieveSyncStatuses()
 {
     return(_table.Query
            .Where(s => s.PartitionKey.Equals(AzureRoleEnvironment.DeploymentId(), StringComparison.OrdinalIgnoreCase))
            .ToList()
            .Select(s => s.ToModel())
            .ToList());
 }
        public void UpdateStatus(string webSiteName, SyncInstanceStatus status, Exception lastError = null)
        {
            var syncStatus = new SyncStatus
            {
                SiteName       = webSiteName,
                RoleInstanceId = AzureRoleEnvironment.CurrentRoleInstanceId(),
                DeploymentId   = AzureRoleEnvironment.DeploymentId(),
                Status         = status,
                IsOnline       = true,
                LastError      = lastError
            };

            _table.AddOrUpdate(syncStatus.ToRow());
        }
        public static SyncStatusRow ToRow(this SyncStatus model)
        {
            if (model == null)
            {
                return(null);
            }

            var deploymentId   = string.IsNullOrWhiteSpace(model.DeploymentId) ? AzureRoleEnvironment.DeploymentId() : model.DeploymentId;
            var roleInstanceId = string.IsNullOrWhiteSpace(model.RoleInstanceId) ? AzureRoleEnvironment.CurrentRoleInstanceId() : model.RoleInstanceId;

            return(new SyncStatusRow(deploymentId, roleInstanceId, model.SiteName)
            {
                Status = model.Status.ToString(),
                IsOnline = model.IsOnline,
                LastError = model.LastError.TraceInformation()
            });
        }