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);
        }
예제 #2
0
        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());
            }
        }