Example #1
0
        public bool DiscardEmailAttachment(EmailAttachment @emailAttachment)
        {
            bool retval;

            retval = Ambient.ExecuteAmbientUnitOfWorkAware(Repository.UowcFactory.Instance, (uowc, e) => this.DiscardEmailAttachment(uowc, e), @emailAttachment);

            return retval;
        }
Example #2
0
partial         void OnPreInsertEmailAttachment(IUnitOfWorkContext unitOfWorkContext, EmailAttachment emailAttachment)
        {
            if ((object)unitOfWorkContext == null)
                throw new ArgumentNullException("unitOfWorkContext");

            if ((object)emailAttachment == null)
                throw new ArgumentNullException("emailAttachment");

            //emailAttachment.Mark();
        }
Example #3
0
        public bool DiscardEmailAttachment(IUnitOfWorkContext unitOfWorkContext, EmailAttachment @emailAttachment)
        {
            TextMetal.HostImpl.AspNetSample.Objects.Model.L2S.EmailAttachment query;

            if ((object)unitOfWorkContext == null)
                throw new ArgumentNullException("unitOfWorkContext");

            if ((object)@emailAttachment == null)
                throw new ArgumentNullException("emailAttachment");

            if (@emailAttachment.IsNew)
                return true;

            using (ContextWrapper<TextMetal.HostImpl.AspNetSample.Objects.Model.L2S.TxtMtlPrimaryDataContext> ctx = unitOfWorkContext.GetContext<TextMetal.HostImpl.AspNetSample.Objects.Model.L2S.TxtMtlPrimaryDataContext>())
            {
                this.OnPreDeleteEmailAttachment(unitOfWorkContext, @emailAttachment);

                query = [email protected](lo => lo.@EmailAttachmentId == @emailAttachment.@EmailAttachmentId);

                if((object)query == null)
                    throw new InvalidOperationException("TODO (enhancement): add meaningful message");

                [email protected](query);

                try
                {
                    ctx.Context.SubmitChanges(ConflictMode.FailOnFirstConflict);
                }
                catch (ChangeConflictException ccex)
                {
                    this.OnDiscardConflictEmailAttachment(unitOfWorkContext, @emailAttachment);

                    return false;
                }

                this.OnPostDeleteEmailAttachment(unitOfWorkContext, @emailAttachment);

                @emailAttachment.IsNew = false;

                return true;
            }
        }
Example #4
0
partial         void OnSelectEmailAttachment(IUnitOfWorkContext unitOfWorkContext, EmailAttachment @emailAttachment);
Example #5
0
partial         void OnSaveConflictEmailAttachment(IUnitOfWorkContext unitOfWorkContext, EmailAttachment @emailAttachment);
Example #6
0
partial         void OnPreUpdateEmailAttachment(IUnitOfWorkContext unitOfWorkContext, EmailAttachment @emailAttachment);
Example #7
0
partial         void OnPreInsertEmailAttachment(IUnitOfWorkContext unitOfWorkContext, EmailAttachment @emailAttachment);
Example #8
0
partial         void OnPostDeleteEmailAttachment(IUnitOfWorkContext unitOfWorkContext, EmailAttachment @emailAttachment);
Example #9
0
        public bool SaveEmailAttachment(IUnitOfWorkContext unitOfWorkContext, EmailAttachment @emailAttachment)
        {
            TextMetal.HostImpl.AspNetSample.Objects.Model.L2S.EmailAttachment query;
            bool wasNew;

            if ((object)unitOfWorkContext == null)
                throw new ArgumentNullException("unitOfWorkContext");

            if ((object)@emailAttachment == null)
                throw new ArgumentNullException("emailAttachment");

            using (ContextWrapper<TextMetal.HostImpl.AspNetSample.Objects.Model.L2S.TxtMtlPrimaryDataContext> ctx = unitOfWorkContext.GetContext<TextMetal.HostImpl.AspNetSample.Objects.Model.L2S.TxtMtlPrimaryDataContext>())
            {
                wasNew = @emailAttachment.IsNew;

                if (wasNew)
                {
                    this.OnPreInsertEmailAttachment(unitOfWorkContext, @emailAttachment);

                    query = new TextMetal.HostImpl.AspNetSample.Objects.Model.L2S.EmailAttachment();

                    ctx.Context.EmailAttachments.InsertOnSubmit(query);
                }
                else
                {
                    this.OnPreUpdateEmailAttachment(unitOfWorkContext, @emailAttachment);

                    query = ctx.Context.EmailAttachments.SingleOrDefault(lo => lo.@EmailAttachmentId == @emailAttachment.@EmailAttachmentId);

                    if((object)query == null)
                        throw new InvalidOperationException("TODO (enhancement): add meaningful message");
                }

                // map caller POCO changes to L2S object
                query.@EmailAttachmentId = @emailAttachment.@EmailAttachmentId;
                query.@EmailMessageId = @emailAttachment.@EmailMessageId;
                query.@MimeType = @emailAttachment.@MimeType;
                if ((object)@emailAttachment.@AttachmentBits != null) // prevent implicit conversion of null -> exception
                    query.@AttachmentBits = @emailAttachment.@AttachmentBits;
                query.@CreationTimestamp = @emailAttachment.@CreationTimestamp;
                query.@ModificationTimestamp = @emailAttachment.@ModificationTimestamp;
                query.@LogicalDelete = @emailAttachment.@LogicalDelete;

                try
                {
                    ctx.Context.SubmitChanges(ConflictMode.FailOnFirstConflict);
                }
                catch (ChangeConflictException ccex)
                {
                    this.OnSaveConflictEmailAttachment(unitOfWorkContext, @emailAttachment);

                    return false;
                }

                // map server changes back to POCO from L2S object
                @emailAttachment.@EmailAttachmentId = query.@EmailAttachmentId;
                @emailAttachment.@EmailMessageId = query.@EmailMessageId;
                @emailAttachment.@MimeType = query.@MimeType;
                @emailAttachment.@AttachmentBits = (object)query.@AttachmentBits != null ? [email protected]() : null;
                @emailAttachment.@CreationTimestamp = query.@CreationTimestamp;
                @emailAttachment.@ModificationTimestamp = query.@ModificationTimestamp;
                @emailAttachment.@LogicalDelete = query.@LogicalDelete;

                if (wasNew)
                {
                    this.OnPostInsertEmailAttachment(unitOfWorkContext, @emailAttachment);
                }
                else
                {
                    this.OnPostUpdateEmailAttachment(unitOfWorkContext, @emailAttachment);
                }

                return true;
            }
        }
Example #10
0
        public EmailAttachment LoadEmailAttachment(IUnitOfWorkContext unitOfWorkContext, Int32 @emailAttachmentId)
        {
            EmailAttachment @emailAttachment;
            TextMetal.HostImpl.AspNetSample.Objects.Model.L2S.EmailAttachment query;

            if ((object)unitOfWorkContext == null)
                throw new ArgumentNullException("unitOfWorkContext");

            using (ContextWrapper<TextMetal.HostImpl.AspNetSample.Objects.Model.L2S.TxtMtlPrimaryDataContext> ctx = unitOfWorkContext.GetContext<TextMetal.HostImpl.AspNetSample.Objects.Model.L2S.TxtMtlPrimaryDataContext>())
            {
                query = ctx.Context.EmailAttachments.SingleOrDefault(lo => lo.@EmailAttachmentId == @emailAttachmentId);

                if ((object)query == null)
                    return null; // does not exist

                @emailAttachment = new EmailAttachment()
                                {
                                    // map result to POCO from L2S object
                                    @EmailAttachmentId = query.@EmailAttachmentId,
                                    @EmailMessageId = query.@EmailMessageId,
                                    @MimeType = query.@MimeType,
                                    @AttachmentBits = (object)query.AttachmentBits != null ? [email protected]() : null,
                                    @CreationTimestamp = query.@CreationTimestamp,
                                    @ModificationTimestamp = query.@ModificationTimestamp,
                                    @LogicalDelete = query.@LogicalDelete
                                };

                this.OnSelectEmailAttachment(unitOfWorkContext, @emailAttachment);

                return @emailAttachment;
            }
        }