Example #1
0
        public async Task <VerifyRecordResult> DeleteAsync(int id)
        {
            try
            {
                CleanTrackingHelper.Clean <FlowInbox>(context);
                FlowInbox item = await context.FlowInbox
                                 .AsNoTracking()
                                 .FirstOrDefaultAsync(x => x.Id == id);

                if (item == null)
                {
                    return(VerifyRecordResultFactory.Build(false, ErrorMessageEnum.無法刪除紀錄));
                }
                else
                {
                    CleanTrackingHelper.Clean <FlowInbox>(context);
                    context.Entry(item).State = EntityState.Deleted;
                    await context.SaveChangesAsync();

                    CleanTrackingHelper.Clean <FlowInbox>(context);
                    CleanTrackingHelper.Clean <FlowHistory>(context);
                    return(VerifyRecordResultFactory.Build(true));
                }
            }
            catch (Exception ex)
            {
                Logger.LogError(ex, "刪除記錄發生例外異常");
                return(VerifyRecordResultFactory.Build(false, "刪除記錄發生例外異常", ex));
            }
        }
Example #2
0
        public async Task <VerifyRecordResult> UpdateAsync(FlowInboxAdapterModel paraObject)
        {
            try
            {
                FlowInbox itemData = Mapper.Map <FlowInbox>(paraObject);
                CleanTrackingHelper.Clean <FlowInbox>(context);
                FlowInbox item = await context.FlowInbox
                                 .AsNoTracking()
                                 .FirstOrDefaultAsync(x => x.Id == paraObject.Id);

                if (item == null)
                {
                    return(VerifyRecordResultFactory.Build(false, ErrorMessageEnum.無法修改紀錄));
                }
                else
                {
                    CleanTrackingHelper.Clean <FlowInbox>(context);
                    context.Entry(itemData).State = EntityState.Modified;
                    await context.SaveChangesAsync();

                    CleanTrackingHelper.Clean <FlowInbox>(context);
                    return(VerifyRecordResultFactory.Build(true));
                }
            }
            catch (Exception ex)
            {
                Logger.LogError(ex, "修改記錄發生例外異常");
                return(VerifyRecordResultFactory.Build(false, "修改記錄發生例外異常", ex));
            }
        }
Example #3
0
        public async Task <FlowInboxAdapterModel> GetAsync(int id)
        {
            FlowInbox item = await context.FlowInbox
                             .Include(x => x.MyUser)
                             .Include(x => x.FlowMaster)
                             .AsNoTracking()
                             .FirstOrDefaultAsync(x => x.Id == id);

            FlowInboxAdapterModel result = Mapper.Map <FlowInboxAdapterModel>(item);

            await OhterDependencyData(result);

            return(result);
        }
Example #4
0
        public async Task <VerifyRecordResult> AddAsync(FlowInboxAdapterModel paraObject)
        {
            try
            {
                CleanTrackingHelper.Clean <FlowInbox>(context);
                FlowInbox itemParameter = Mapper.Map <FlowInbox>(paraObject);
                CleanTrackingHelper.Clean <FlowInbox>(context);
                await context.FlowInbox
                .AddAsync(itemParameter);

                await context.SaveChangesAsync();

                CleanTrackingHelper.Clean <FlowInbox>(context);
                return(VerifyRecordResultFactory.Build(true));
            }
            catch (Exception ex)
            {
                Logger.LogError(ex, "新增記錄發生例外異常");
                return(VerifyRecordResultFactory.Build(false, "新增記錄發生例外異常", ex));
            }
        }
        public async Task AddInboxRecord(FlowMasterAdapterModel paraObject,
                                         MyUserAdapterModel myUser, bool isCC)
        {
            string CCMessage = isCC ? "[知會]" : "";

            CleanTrackingHelper.Clean <FlowInbox>(context);
            FlowInbox inbox = new FlowInbox()
            {
                FlowMasterId = paraObject.Id,
                MyUserId     = myUser.Id,
                IsRead       = false,
                ReceiveTime  = DateTime.Now,
                Title        = $"{CCMessage} {paraObject.Title}",
                Body         = paraObject.Content,
            };
            await context.FlowInbox.AddAsync(inbox);

            await context.SaveChangesAsync();

            CleanTrackingHelper.Clean <FlowInbox>(context);
        }