コード例 #1
0
ファイル: FormTable.cs プロジェクト: 7topsoft/OpenCube
        public static FormTable CreateFrom(IFormTableUpdatable fields)
        {
            fields.ThrowIfNull(nameof(fields));

            var formId         = Guid.NewGuid();
            var htmlTemplateId = Guid.NewGuid();
            var createdDate    = DateTimeOffset.Now;

            return(new FormTable(formId)
            {
                Name = fields.Name,
                Description = fields.Description,
                //UploadInterval = fields.UploadInterval,
                UploadWeekOfMonth = fields.UploadWeekOfMonth,
                UploadDayOfWeek = fields.UploadDayOfWeek,
                IsEnabled = fields.IsEnabled,
                HtmlTemplateId = htmlTemplateId,
                HtmlTemplate = new FormHtmlTemplate(formId, htmlTemplateId)
                {
                    FormName = fields.Name,
                    CreatedDate = createdDate
                },
                CreatedDate = createdDate
            });
        }
コード例 #2
0
        /// <summary>
        /// 대시보드 테이블을 업데이트한다.
        /// </summary>
        public FormTable UpdateFormTable(Guid formId, IFormTableUpdatable fields)
        {
            using (var repo = new FormTableRepository())
            {
                var formTable = repo.SelectFormTable(formId);
                if (formTable == null)
                {
                    throw new ObjectNotFoundException($"업데이트 할 대상 대시보드를 찾을 수 없습니다.\r\n대시보드 ID: \"{formId}\"");
                }

                List <UpdatedField> updated = null;
                formTable.Update(fields, out updated);

                if (repo.UpdateFormTable(formTable))
                {
                    logger.Info($"대시보드 정보가 업데이트 되었습니다. 대시보드: \"{formTable.Name}\""
                                + $"\r\n\r\n"
                                + $"updated: {UpdatedField.Print(updated)}"
                                + $"\r\n\r\n"
                                + $"{formTable}");

                    return(formTable);
                }

                return(null);
            }
        }
コード例 #3
0
ファイル: FormTable.cs プロジェクト: 7topsoft/OpenCube
        public void Update(IFormTableUpdatable fields)
        {
            List <UpdatedField> updated = null;

            this.Update(fields, out updated);
        }
コード例 #4
0
ファイル: FormTable.cs プロジェクト: 7topsoft/OpenCube
        public void Update(IFormTableUpdatable fields, out List <UpdatedField> updated)
        {
            fields.ThrowIfNull(nameof(fields));

            updated = new List <UpdatedField>();

            if (Name != fields.Name && fields.Name.IsNotNullOrWhiteSpace())
            {
                updated.Add(new UpdatedField
                {
                    FieldName = nameof(Name),
                    OldValue  = Name,
                    NewValue  = fields.Name
                });

                Name = fields.Name;
            }

            if (Description != fields.Description)
            {
                updated.Add(new UpdatedField
                {
                    FieldName = nameof(Description),
                    OldValue  = Description,
                    NewValue  = fields.Description
                });

                Description = fields.Description;
            }

            // NOTE(jhlee): 실적 업로드 주기가 변경 되면 데이터 조회/확인 취소 처리에 문제가 생기므로 변경 불가능하도록 수정함.
            //if (UploadInterval != fields.UploadInterval)
            //{
            //    updated.Add(new UpdatedField
            //    {
            //        FieldName = nameof(UploadInterval),
            //        OldValue = UploadInterval,
            //        NewValue = fields.UploadInterval
            //    });

            //    UploadInterval = fields.UploadInterval;
            //}

            if (UploadWeekOfMonth != fields.UploadWeekOfMonth)
            {
                updated.Add(new UpdatedField
                {
                    FieldName = nameof(UploadWeekOfMonth),
                    OldValue  = UploadWeekOfMonth,
                    NewValue  = fields.UploadWeekOfMonth
                });

                UploadWeekOfMonth = fields.UploadWeekOfMonth;
            }

            if (UploadDayOfWeek != fields.UploadDayOfWeek)
            {
                updated.Add(new UpdatedField
                {
                    FieldName = nameof(UploadDayOfWeek),
                    OldValue  = UploadDayOfWeek,
                    NewValue  = fields.UploadDayOfWeek
                });

                UploadDayOfWeek = fields.UploadDayOfWeek;
            }

            if (IsEnabled != fields.IsEnabled)
            {
                updated.Add(new UpdatedField
                {
                    FieldName = nameof(IsEnabled),
                    OldValue  = IsEnabled,
                    NewValue  = fields.IsEnabled
                });

                IsEnabled = fields.IsEnabled;
            }

            if (updated.Any())
            {
                UpdatedDate = DateTimeOffset.Now;

                Validate();
            }
        }