Exemplo n.º 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;
        }
Exemplo n.º 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;
 }