Exemple #1
0
        public void UpdateMediaResource(DtoResourceRequest resource)
        {
            using (TransactionScope scope = new TransactionScope())
            {
                try
                {
                    var words = GetWords(resource.Name, resource.Keyword, resource.Grade);
                    Yw_MediaResource mediaResource = MediaResourceRepository.GetMediaResource(resource.Id);
                    if (mediaResource != null)
                    {
                        mediaResource.Ymr_Name       = resource.Name;
                        mediaResource.Ymr_Grade      = resource.Grade;
                        mediaResource.Ymr_Status     = resource.Status;
                        mediaResource.Ymr_Keywords   = resource.Keyword;
                        mediaResource.Ymr_UpdateTime = DateTime.Now;
                        mediaResource.Ymr_Editor     = resource.Editor;
                        MediaResourceRepository.Update(mediaResource);
                    }

                    Yw_MediaObject mediaObject = MediaObjectRepository.GetMediaObject(mediaResource.Ymr_MediaObjectId);
                    if (mediaObject != null)
                    {
                        mediaObject.Yme_Url          = resource.Url;
                        mediaObject.Yme_ImageCoverId = resource.ImgId;
                        mediaObject.Yme_Description  = resource.Description;
                        mediaObject.Yme_Editor       = resource.Editor;
                        mediaObject.Yme_UpdateTime   = DateTime.Now;
                        if (!string.IsNullOrEmpty(resource.AudioContent))
                        {
                            if (mediaObject.Yme_TextObjectId > 0)
                            {
                                Yw_TextObject textObject = TextObjectRepository.GeTextObject(mediaObject.Yme_TextObjectId);
                                textObject.Yxo_Content    = resource.AudioContent;
                                textObject.Yxo_Editor     = resource.Editor;
                                textObject.Yxo_UpdateTime = DateTime.Now;
                                TextObjectRepository.Update(textObject);
                            }
                            else
                            {
                                Yw_TextObject textObject = new Yw_TextObject()
                                {
                                    Yxo_Content    = resource.AudioContent,
                                    Yxo_Status     = 1,
                                    Yxo_CreateTime = DateTime.Now,
                                    Yxo_Creator    = resource.Creator,
                                    Yxo_Editor     = resource.Editor,
                                    Yxo_UpdateTime = DateTime.Now
                                };
                                int textObjectId = TextObjectRepository.Add(textObject);
                                mediaObject.Yme_TextObjectId = textObjectId;
                            }
                        }
                        MediaObjectRepository.Update(mediaObject);
                    }


                    UpdateResourceIndex(resource.Name, resource.Grade, (int)resource.MediaType, (int)ResourceTypeEnum.多媒体资源, mediaResource.Ymr_Id, words, resource.Creator);

                    scope.Complete();
                }
                catch (Exception ex)
                {
                    RollbackTran();
                    throw ex;
                }
            }
        }