public SiteInformation Get() { var result = new SiteInformation(); var siteUrl = Request.GetQueryNameValuePairs().FirstOrDefault(p => p.Key == "siteUrl").Value; DbRepository.UsingContext(dbContext => { var site = dbContext.GetSite(siteUrl); if (site == null) { result.IsSuccess = false; result.Message = string.Format(UxResources.SiteRecordNotFound, siteUrl); } else { ILifeCycleHelper helper = new LifeCyclePolicy(); result.AudienceScope = site.AudienceScope; result.ExpireDate = site.ComplianceState.ExpireDate; result.NeedExtend = GovernanceWorkflowHelper.NeedExtend( helper.GetExpiredDate(site)); result.CanDecommission = site.ComplianceState.IsCompliant && !result.NeedExtend; DateTime tmp = site.ComplianceState.ExpireDate; site.ComplianceState.ExpireDate = DateTime.MinValue; var extendDate = helper.GetExpiredDate(site); site.ComplianceState.ExpireDate = tmp; result.IsSuccess = true; } }); return(result); }
public OperationResult Post(SiteInformation data) { var result = new OperationResult(); try { var siteUrl = Request.GetQueryNameValuePairs().FirstOrDefault(p => p.Key == "siteUrl").Value; DbRepository.UsingContext(dbContext => { var site = dbContext.GetSite(siteUrl); if (site == null) { result.IsSuccess = false; result.Message = string.Format(UxResources.SiteRecordNotFound, siteUrl); } else { site.AudienceScope = data.AudienceScope; var status = site.ComplianceState; if (data.NeedExtend) { var now = GovernanceWorkflowHelper.GetCurrentBusinessTime(); var lockDate = now.AddDays(GovernanceWorkflowHelper.FirstLockNotificationDays); if (status.ExpireDate > lockDate || status.ExpireDate == DateTime.MinValue) { status.ExpireDate = lockDate; } if (status.LockedDate > lockDate || status.LockedDate == DateTime.MinValue) { status.LockedDate = lockDate; } } else if (data.IsExtend) { status.ExpireDate = data.ExtendDate; } dbContext.SaveChanges(); result.IsSuccess = true; } }); } catch (Exception e) { result.IsSuccess = false; result.Message = e.Message; } return(result); }
private static SiteInformation GetMockUpSiteInformation() { return(new SiteInformation { Title = "UTTest", Name = "UTTest", UrlPath = "/teams/", UrlDomain = "https://contoso.sharepoint.com", BusinessImpact = "MBI", Template = "STS#0", StorageMaximumLevel = 500, StorageWarningLevel = 400, UserCodeMaximumLevel = 100f, UserCodeWarningLevel = 90f, TimeZoneId = 7, Lcid = 1033, AudienceScope = "Team", Administrators = GetMockUpSiteUsers(2), ComplianceState = new ComplianceState { DeleteDate = DateTime.MinValue, DeleteNotificationSent = false, DeleteNotificationSentDate = DateTime.MinValue, ExpireDate = DateTime.UtcNow.AddDays(-1), FirstLockNotificationSent = false, FirstLockNotificationSentDate = DateTime.MinValue, IsCompliant = false, IsLocked = false, IsReadonly = false, LastCheckDate = DateTime.Now, SecondLockNotificationSent = false, SecondLockNotificationSentDate = DateTime.MinValue, LockedDate = DateTime.UtcNow.AddDays(10) }, CreatedDate = GovernanceWorkflowHelper.GetCurrentBusinessTime(), HasBroadAccess = false }); }