コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
 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
     });
 }