public int CreateCompanyBuildingObject(int companyId, int buildingObjectId, string host) { int result = 0; using (IUnitOfWork work = UnitOfWork.Begin()) { CompanyBuildingObject cbo = DomainObjectFactory.CreateCompanyBuildingObject(); cbo.CompanyId = companyId; cbo.BuildingObjectId = buildingObjectId; cbo.ValidFrom = DateTime.Now; cbo.ValidTo = DateTime.Now.AddYears(2); cbo.IsDeleted = false; _companyBuildingObjectRepository.Add(cbo); work.Commit(); result = cbo.Id; cbo = _companyBuildingObjectRepository.FindById(result); var message = new StringBuilder(); message.Append(string.Format("Building objects for Company '{0}' changed. ", cbo.Company.Name)); message.Append(string.Format("Room '{0}' in '{1}' added. ", cbo.BuildingObject.Description, cbo.BuildingObject.Building.Name)); _logService.CreateLog(CurrentUser.Get().Id, "web", flag, host, CurrentUser.Get().CompanyId, message.ToString()); } return(result); }
public void UpdateCompany(int id, string name, string comment, bool isCanUseOwnCards, string host, IEnumerable <CompanyBuildingDto> companyBuildings) { using (IUnitOfWork work = UnitOfWork.Begin()) { Company company = _companyRepository.FindById(id); IFoxSecIdentity identity = CurrentUser.Get(); var old_name = company.Name; var old_comment = company.Comment; company.Name = name; company.ModifiedLast = DateTime.Now; company.ModifiedBy = identity.LoginName; company.Comment = comment; company.IsCanUseOwnCards = isCanUseOwnCards; var message = new XElement(XMLLogLiterals.LOG_MESSAGE); message.Add(XMLLogMessageHelper.TemplateToXml("LogMessageCompanyChanged", new List <string> { old_name })); if (old_name != name) { message.Add(XMLLogMessageHelper.TemplateToXml("LogMessageNameChanged", new List <string> { old_name, name })); } if (old_comment != comment) { message.Add(XMLLogMessageHelper.TemplateToXml("LogMessageCommentChange", new List <string> { old_comment, comment })); } message.Add(isCanUseOwnCards ? XMLLogMessageHelper.TemplateToXml("LogMessageCanUseOwnCardsTrue", null) : XMLLogMessageHelper.TemplateToXml("LogMessageCanUseOwnCardsFalse", null)); foreach (var cb in company.CompanyBuildingObjects) { if (!companyBuildings.Any(x => x.BuildingObjectId == cb.BuildingObjectId)) { if (!cb.IsDeleted) { message.Add(XMLLogMessageHelper.TemplateToXml("LogMessageBuildingObjectRemoved", new List <string> { cb.BuildingObject.Description, cb.BuildingObject.Building.Name })); } cb.IsDeleted = true; } } foreach (var companyBuildingDto in companyBuildings) { CompanyBuildingObject cbo = company.CompanyBuildingObjects.Where( x => x.BuildingObjectId == companyBuildingDto.BuildingObjectId).FirstOrDefault(); if (cbo != null) { if (companyBuildingDto.IsSelected) { cbo.ValidFrom = DateTime.Now; cbo.ValidTo = DateTime.Now.AddYears(50); if (cbo.IsDeleted) { message.Add(XMLLogMessageHelper.TemplateToXml("LogMessageBuildingObjectAdded", new List <string> { cbo.BuildingObject.Description, cbo.BuildingObject.Building.Name })); } } else { if (!cbo.IsDeleted) { message.Add(XMLLogMessageHelper.TemplateToXml("LogMessageBuildingObjectRemoved", new List <string> { cbo.BuildingObject.Description, cbo.BuildingObject.Building.Name })); } } cbo.IsDeleted = !companyBuildingDto.IsSelected; } else { cbo = DomainObjectFactory.CreateCompanyBuildingObject(); cbo.CompanyId = company.Id; cbo.BuildingObjectId = companyBuildingDto.BuildingObjectId; cbo.ValidFrom = DateTime.Now; cbo.ValidTo = DateTime.Now.AddYears(50); cbo.IsDeleted = !companyBuildingDto.IsSelected; company.CompanyBuildingObjects.Add(cbo); var bo = _buildingObjectRepository.FindById(companyBuildingDto.BuildingObjectId); if (cbo.IsDeleted) { message.Add(XMLLogMessageHelper.TemplateToXml("LogMessageBuildingObjectRemoved", new List <string> { bo.Description, bo.Building.Name })); } else { message.Add(XMLLogMessageHelper.TemplateToXml("LogMessageBuildingObjectAdded", new List <string> { bo.Description, bo.Building.Name })); } } } work.Commit(); _logservice.CreateLog(CurrentUser.Get().Id, "web", flag, host, CurrentUser.Get().CompanyId, message.ToString()); } }