Exemplo n.º 1
0
        public IEnumerable<string> ValidateSiteCloseRequest(CreateUpdateSiteRequest request)
        {
            var validationMessages = new List<string>();
            var site = _siteRepository.GetById(request.Id);

            bool isSiteClosed = site.SiteClosedDate != null;

            //do the validation if siteClosed status is being changed from the current database status and 
            //site is being closed
            if (isSiteClosed != request.SiteClosed && request.SiteClosed)
            {
                var children = site.Children.Where(x => x.SiteClosedDate == null);

                if (children.Any())
                {
                    validationMessages.Add("Please remove all linked sites.");
                }

                var employees = _employeeRepository.GetBySite(site.Id);

                if (employees.Any())
                {
                    validationMessages.Add("Please remove all attached employees.");
                }
            }

            return validationMessages;
        }
Exemplo n.º 2
0
        public long CreateUpdate(CreateUpdateSiteRequest request)
        {
            var parent = request.ParentId != null ? _siteStructureElementRepository.GetById(request.ParentId.Value) : null;
            var site = _siteRepository.GetById(request.Id);
            var currentUser = _userForAuditingRepository.GetByIdAndCompanyId(request.CurrentUserId, request.ClientId);

            if (request.Id == default(long))
            {
                site = Site.Create(
                    request.SiteId,
                    parent,
                    request.ClientId,
                    request.Name,
                    request.Reference,
                    request.SiteContact,
                    currentUser);
            }
            else
            {
                site.Update(
                    parent,
                    request.Name,
                    request.Reference,
                    request.ClientId,
                    request.SiteContact,
                    currentUser,
                    request.IsSiteOpenRequest,
                    request.IsSiteClosedRequest);
            }

            var sitesWithSameName =
                _siteStructureElementRepository.GetByName(request.ClientId, site.Name).Where(sg => sg.Id != request.Id);

            site.Validate(sitesWithSameName);
            _siteRepository.SaveOrUpdate(site);

            return site.Id;
        }
Exemplo n.º 3
0
 public void GetSiteOpenClosedRequest(CreateUpdateSiteRequest request,  out bool isSiteOpenRequest, out bool isSiteClosedRequest)
 {
     var site = _siteRepository.GetById(request.Id);
     isSiteOpenRequest = site.SiteClosedDate != null && !request.SiteClosed;
     isSiteClosedRequest = site.SiteClosedDate == null && request.SiteClosed;
 }