Exemple #1
0
        internal IFacadeUpdateResult <ReferenceData> SaveReferenceLanguageBasic(ReferenceData dto, object languageId)
        {
            ArgumentValidator.IsNotNull("dto", dto);
            ArgumentValidator.IsNotNull("languageId", languageId);

            FacadeUpdateResult <ReferenceData> result = new FacadeUpdateResult <ReferenceData>();
            IReferenceService service  = UnitOfWork.GetService <IReferenceService>();
            Reference         instance = RetrieveOrNew <ReferenceData, Reference, IReferenceService>(result.ValidationResult, dto.Id);

            if (result.IsSuccessful)
            {
                instance.ModifiedDate = DateTime.Now;

                // Check existence of current language
                ReferenceLanguage referenceLanguage = instance.ReferenceLanguages.FirstOrDefault(o => object.Equals(o.LanguageId, languageId));
                if (referenceLanguage == null)
                {
                    referenceLanguage            = instance.ReferenceLanguages.AddNewBo();
                    referenceLanguage.LanguageId = languageId;
                }
                referenceLanguage.Title       = dto.Title;
                referenceLanguage.Description = dto.Description;
                referenceLanguage.Keywords    = dto.Keywords;

                var saveQuery = service.Save(instance);

                result.AttachResult(instance.RetrieveData <ReferenceData>());
                result.Merge(saveQuery);
            }

            return(result);
        }
Exemple #2
0
        private T CreateOrDuplicateMaterial <T>(Reference _ref, ReferenceSet referenceSet) where T : Material, new()
        {
            Material mat = ((T)_ref.Material).CloneThis();

            mat.MaterialClassification = Session.Query <MaterialClassification>().SingleOrDefault(x => x.Code == "CREF");
            Session.Save(mat);

            Reference newRef = new Reference()
            {
                Material = mat, ReferenceSet = referenceSet
            };

            Session.Save(newRef);

            foreach (ReferenceLanguage rl in _ref.ReferenceLanguages)
            {
                ReferenceLanguage newRefLang = new ReferenceLanguage()
                {
                    Reference = newRef, Language = rl.Language
                };
                Session.Save(newRefLang);
                newRef.ReferenceLanguages.Add(newRefLang);
                Session.Save(newRef);
            }
            referenceSet.References.Add(newRef);
            Session.Save(referenceSet);

            return((T)mat);
        }