Ejemplo n.º 1
0
        protected void grdForm_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                string aform = e.Row.DataItem as String;
                if (aform != null)
                {
                    Label lblForm = (Label)e.Row.FindControl("lblForm");
                    lblForm.Text = aform;
                    LinkButton btnEdit = (LinkButton)e.Row.FindControl("btnEdit");
                    btnEdit.CommandArgument = aform;
                    LinkButton btnView = (LinkButton)e.Row.FindControl("btnView");
                    btnView.CommandArgument = aform;

                    List <SubmissionEntity> allSubs = Session[Constants.SUBMITSESSIONVAR] as List <SubmissionEntity>;

                    if (allSubs != null)
                    {
                        SubmissionEntity sub = allSubs.FirstOrDefault(s => s.SubmissionYear == Utils.GetIntValue(lblYear.Text));
                        if (sub == null || sub.SubmittedForms.All(sf => sf != aform))
                        {
                            btnView.Attributes.Add("style", "display:none");
                        }
                    }
                }
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 检查某个用户提交是否存在。
        /// </summary>
        /// <param name="submissionId">用户提交 ID。</param>
        /// <returns>一个值,该值指示给定的用户提交是否存在。</returns>
        public bool IsSubmissionExist(int submissionId)
        {
            SubmissionEntity entity
                = m_factory.WithContext(context => context.QuerySubmissionEntityById(submissionId));

            return(entity != null);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 更新给定的用户提交记录实体数据。
        /// </summary>
        /// <param name="entity">要更新的用户提交记录实体数据。</param>
        /// <exception cref="ArgumentNullException"/>
        /// <exception cref="InvalidOperationException"/>
        /// <remarks>
        /// 若给定的用户提交记录实体数据不在数据库中,抛出 InvalidOperationException 异常。
        /// </remarks>
        public void UpdateSubmissionEntity(SubmissionEntity entity)
        {
            if (entity == null)
            {
                throw new ArgumentNullException(nameof(entity));
            }

            SubmissionEntity target = Submissions.Find(entity.Id);

            if (target == null)
            {
                throw new InvalidOperationException("给定的用户提交记录实体未在数据库中找到。");
            }

            // 更新用户提交记录实体数据。
            target.CodeFilename       = entity.CodeFilename;
            target.CreationTimestamp  = entity.CreationTimestamp;
            target.Language           = entity.Language;
            target.ProblemId          = entity.ProblemId;
            target.RemoteSubmissionId = entity.RemoteSubmissionId;
            target.Username           = entity.Username;
            target.VerdictResult      = entity.VerdictResult;
            target.VerdictStatus      = entity.VerdictStatus;
            target.VerdictTimestamp   = entity.VerdictTimestamp;

            SaveChanges();
        }
Ejemplo n.º 4
0
        protected void Page_Load(object sender, EventArgs e)
        {
            int startYear = Utils.GetIntValue(ConfigurationManager.AppSettings[Constants.StartYear].ToString());

            UserEntity user = Session[Constants.USERSESSIONVAR] as UserEntity;
            UserBL     bl   = new UserBL();

            if (user != null)
            {
                List <SubmissionEntity> allSubmissions = bl.GetSubmissions(user.UserId);
                Session[Constants.SUBMITSESSIONVAR] = allSubmissions;
                List <YearSubmissions> allYearSubmissions = new List <YearSubmissions>();

                for (int i = startYear; i <= DateTime.Now.Year; i++)
                {
                    YearSubmissions ys = new YearSubmissions();
                    ys.Year = i;
                    SubmissionEntity sub = null;
                    if (allSubmissions != null)
                    {
                        sub = allSubmissions.FirstOrDefault(s => s.SubmissionYear == i);
                    }
                    ys.submission = sub;

                    ys.submitted = (sub != null && sub.SubmittedForms.Count == Constants.AllForms.Count);


                    allYearSubmissions.Add(ys);
                }

                grdYear.DataSource = allYearSubmissions;
                grdYear.DataBind();
            }
        }
Ejemplo n.º 5
0
        public async Task <SubmissionEntity> Add(SubmissionEntity pEntity)
        {
            await this.dbContext.Submissions.AddAsync(pEntity);

            await this.dbContext.SaveChangesAsync();

            return(pEntity);
        }
Ejemplo n.º 6
0
        /// <summary>
        /// 在数据库中创建一个新的用户提交项目。
        /// </summary>
        /// <returns></returns>
        public SubmissionHandle CreateSubmission()
        {
            SubmissionEntity entity = new SubmissionEntity();

            m_factory.WithContext(context => entity = context.AddSubmissionEntity(entity));

            return(new SubmissionHandle(entity.Id));
        }
Ejemplo n.º 7
0
 /// <summary>
 /// 使用给定的用户提交实体对象以及一个指示当前对象是否为只读对象的值创建 SubmissionDataProvider 类的新实例。
 /// </summary>
 /// <param name="context">数据上下文对象。</param>
 /// <param name="entity">用户提交实体对象。</param>
 /// <param name="isReadonly">一个值,该值指示当前对象是否为只读对象。</param>
 /// <exception cref="ArgumentNullException"/>
 private SubmissionDataProvider(SubmissionDataContext context, SubmissionEntity entity, bool isReadonly)
 {
     m_context  = context ?? throw new ArgumentNullException(nameof(context));
     m_entity   = entity ?? throw new ArgumentNullException(nameof(entity));
     m_code     = null;
     m_readonly = isReadonly;
     m_dirty    = false;
     m_disposed = false;
 }
Ejemplo n.º 8
0
        /// <summary>
        /// 从给定的用户提交实体对象创建 SubmissionEntity 类的新实例。
        /// </summary>
        /// <param name="entity">用户提交实体对象。</param>
        /// <returns>创建的用户提交句柄。</returns>
        /// <exception cref="ArgumentNullException"/>
        internal static SubmissionHandle FromSubmissionEntity(SubmissionEntity entity)
        {
            if (entity == null)
            {
                throw new ArgumentNullException(nameof(entity));
            }

            return(new SubmissionHandle(entity.Id));
        }
Ejemplo n.º 9
0
 public static Submission TranslateToSubmission(SubmissionEntity entity)
 {
     return(new Submission
     {
         Affirmation = TranslateToAffirmation(entity.Affirmation),
         Id = entity.Id,
         Subscriber = TranslateToSubscriber(entity.Subscriber)
     });
 }
Ejemplo n.º 10
0
        /// <summary>
        /// 删除给定的用户提交记录实体数据。
        /// </summary>
        /// <param name="entity">要删除的用户提交记录实体数据。</param>
        /// <exception cref="ArgumentNullException"/>
        public void RemoveSubmissionEntity(SubmissionEntity entity)
        {
            if (entity == null)
            {
                throw new ArgumentNullException(nameof(entity));
            }

            Submissions.Remove(entity);
            SaveChanges();
        }
Ejemplo n.º 11
0
 public static void CompleteSubmission(IRepository repo, int userId, SubmissionEntity submission)
 {
     using (var trans = repo.BeginTransaction())
     {
         submission.IsComplete       = true;
         submission.DateLastUpdate   = DateTime.Now;
         submission.UserLastUpdateId = userId;
         repo.Update(submission);
         trans.Commit();
     }
 }
Ejemplo n.º 12
0
        /// <summary>
        /// 将给定的用户提交记录添加至数据库中。
        /// </summary>
        /// <param name="entity">要添加的用户提交记录实体对象。</param>
        /// <returns>添加的用户提交记录实体对象。</returns>
        /// <exception cref="ArgumentNullException"/>
        public SubmissionEntity AddSubmissionEntity(SubmissionEntity entity)
        {
            if (entity == null)
            {
                throw new ArgumentNullException(nameof(entity));
            }

            entity = Submissions.Add(entity);
            SaveChanges();

            return(entity);
        }
Ejemplo n.º 13
0
        /// <summary>
        /// 使用给定的提交 ID 查询提交句柄。
        /// </summary>
        /// <param name="submissionId">提交 ID。</param>
        /// <returns>查询到的提交句柄。若给定的提交 ID 不存在,返回 null。</returns>
        public SubmissionHandle QuerySubmissionById(int submissionId)
        {
            SubmissionEntity entity
                = m_factory.WithContext(context => context.QuerySubmissionEntityById(submissionId));

            if (entity == null)
            {
                return(null);
            }

            return(SubmissionHandle.FromSubmissionEntity(entity));
        }
Ejemplo n.º 14
0
        /// <summary>
        /// 从给定的提交句柄对象创建 SubmissionDataProvider 类的新实例。
        /// </summary>
        /// <param name="handle">提交句柄对象。</param>
        /// <param name="isReadonly">一个值,该值指示创建的对象是否为只读。</param>
        /// <returns>创建的 SubmissionDataProvider 类对象。</returns>
        /// <exception cref="ArgumentNullException"/>
        /// <exception cref="SubmissionNotExistException"/>
        public static SubmissionDataProvider Create(SubmissionHandle handle, bool isReadonly)
        {
            if (handle == null)
            {
                throw new ArgumentNullException(nameof(handle));
            }

            SubmissionDataContext context = new SubmissionDataContextFactory().CreateContext();
            SubmissionEntity      entity  = context.QuerySubmissionEntityById(handle.SubmissionId);

            if (entity == null)
            {
                context.Dispose();
                throw new SubmissionNotExistException(handle);
            }

            return(new SubmissionDataProvider(context, entity, isReadonly));
        }
Ejemplo n.º 15
0
        public async Task GetWithSubmissionsSalonsAccreditationSections_GetsFromDb()
        {
            // Arrange
            var lSalonYear = EntitiesHelper.GetSalonYear();

            lSalonYear.Accreditations = new List <AccreditationEntity> {
                new AccreditationEntity {
                    SalonNumber = "test", PhotoOrganisation = EntitiesHelper.GetPhotoOrganisation()
                }
            };
            var lSection = EntitiesHelper.GetSection();

            lSection.SalonYear = lSalonYear;
            var lSubmission = new SubmissionEntity {
                SalonYear = lSalonYear, Entries = new List <CompetitionEntryEntity> {
                    new CompetitionEntryEntity {
                        Image = EntitiesHelper.GetImage(), Section = lSection
                    }
                }
            };
            var lCreatedEntity = await personRepository.Add(new PersonEntity { Name = "test1", Submissions = new List <SubmissionEntity> {
                                                                                   lSubmission
                                                                               } });

            // Act
            var lResult = await personRepository.GetWithSubmissionsSalonsAccreditationSections(lCreatedEntity.Id);

            // Assert
            Assert.IsNotNull(lResult);
            Assert.IsNotNull(lResult.Submissions);
            Assert.IsTrue(lResult.Submissions.Any());
            Assert.IsNotNull(lResult.Submissions[0].Entries);
            Assert.IsTrue(lResult.Submissions[0].Entries.Any());
            Assert.IsNotNull(lResult.Submissions[0].Entries[0].Section);
            Assert.IsNotNull(lResult.Submissions[0].Entries[0].Section.SectionType);
            Assert.IsNotNull(lResult.Submissions[0].Entries[0].Section.SalonYear);
            Assert.IsNotNull(lResult.Submissions[0].Entries[0].Section.SalonYear.Accreditations);
            Assert.IsTrue(lResult.Submissions[0].Entries[0].Section.SalonYear.Accreditations.Any());
            Assert.IsNotNull(lResult.Submissions[0].Entries[0].Section.SalonYear.Salon);
        }
Ejemplo n.º 16
0
 public async Task Update(SubmissionEntity pEntity)
 {
     this.dbContext.Submissions.Update(pEntity);
     await this.dbContext.SaveChangesAsync();
 }
Ejemplo n.º 17
0
        public static void SaveSection(IRepository repo, int formId, int sectionId, int userId, IDictionary <int, string> fields)
        {
            if (!SectionInForm(repo, sectionId, formId))
            {
                throw new InvalidOperationException($"The section {sectionId} does not exist in the form {formId}");
            }

            using (var trans = repo.BeginTransaction())
            {
                var submission = SubmissionServices.GetCurrentSubmission(repo, formId, userId);
                if (submission == null)
                {
                    submission = new SubmissionEntity
                    {
                        Id            = repo.NextSequence <SubmissionEntity>(),
                        FormId        = formId,
                        UserId        = userId,
                        IsComplete    = false,
                        DateCreated   = DateTime.Now,
                        UserCreatedId = userId
                    };

                    repo.Add(submission);
                }

                var section = submission.SubmissionSections.FirstOrDefault(s => s.SectionId == sectionId);
                if (section == null)
                {
                    section = new SubmissionSectionEntity
                    {
                        SubmissionId  = submission.Id,
                        SectionId     = sectionId,
                        IsComplete    = false,
                        DateCreated   = DateTime.Now,
                        UserCreatedId = userId
                    };
                    repo.Add(section);
                }
                else if (section.DateDeleted != null)
                {
                    section.FieldResponses.Where(r => r.DateDeleted == null).ForEach(r =>
                    {
                        r.DateDeleted      = DateTime.Now;
                        r.DateLastUpdate   = DateTime.Now;
                        r.UserLastUpdateId = userId;
                        repo.Update(r);
                    });
                    section.DateDeleted      = null;
                    section.DateLastUpdate   = DateTime.Now;
                    section.UserLastUpdateId = userId;
                    repo.Update(section);
                }

                if (fields.Any(f => !FieldInSection(repo, f.Key, sectionId)))
                {
                    throw new InvalidOperationException($"Some of the given fields do not exist in section {sectionId}");
                }

                fields.ForEach(f =>
                {
                    var entity = section.FieldResponses.FirstOrDefault(r => r.FieldId == f.Key);
                    if (entity == null)
                    {
                        entity = new FieldResponseEntity
                        {
                            SubmissionId  = submission.Id,
                            SectionId     = sectionId,
                            FieldId       = f.Key,
                            Text          = f.Value,
                            DateCreated   = DateTime.Now,
                            UserCreatedId = userId
                        };
                        repo.Add(entity);
                    }
                    else
                    {
                        entity.Text             = f.Value;
                        entity.DateDeleted      = null;
                        entity.DateLastUpdate   = DateTime.Now;
                        entity.UserLastUpdateId = userId;
                        repo.Update(entity);
                    }
                });

                trans.Commit();

                SaveFieldResponse(repo, formId, sectionId, userId, fields);
            }
        }
Ejemplo n.º 18
0
 public SubmissionHandle()
 {
     m_nativeEntity = new SubmissionEntity();
 }
Ejemplo n.º 19
0
 public async Task Delete(SubmissionEntity pEntity)
 {
     this.dbContext.Submissions.Remove(pEntity);
     await this.dbContext.SaveChangesAsync();
 }
Ejemplo n.º 20
0
        public List <SubmissionEntity> GetSubmissionByUser(int userId)
        {
            List <SubmissionEntity> AllSubmissions = null;

            DataSet           dsSubmissions = new DataSet();
            SpParamCollection spParams      = new SpParamCollection();

            sqlConn = new SqlConnection(m_connectionString);
            spParams.Add(new SpParam("@userid", userId));

            DBHelper.ExecProcAndFillDataSet("GetSubmissionsByUser", spParams, dsSubmissions, sqlConn);

            if (dsSubmissions != null && dsSubmissions.Tables.Count > 0)
            {
                try
                {
                    DataTable dtSubmission = dsSubmissions.Tables[0];

                    if (dtSubmission != null && dtSubmission.Rows.Count > 0)
                    {
                        for (int j = 0; j < dtSubmission.Rows.Count; j++)
                        {
                            DataRow          drSubmission = dtSubmission.Rows[0];
                            SubmissionEntity sub          = new SubmissionEntity();
                            sub = new SubmissionEntity();
                            sub.SubmissionId   = Utils.GetIntValue(drSubmission["Id"]);
                            sub.SubmissionYear = Utils.GetIntValue(drSubmission["year"]);
                            sub.SubmissionDate = Utils.GetDateTimeValue(drSubmission["create_at"].ToString()).Value;
                            sub.SubmittedForms = new List <string>();



                            if (Utils.GetIntValue(drSubmission["form1id"]) > 0)
                            {
                                sub.SubmittedForms.Add(Constants.FORMA);
                            }
                            if (Utils.GetIntValue(drSubmission["form2id"]) > 0)
                            {
                                sub.SubmittedForms.Add(Constants.FORMB);
                            }
                            if (Utils.GetIntValue(drSubmission["form3id"]) > 0)
                            {
                                sub.SubmittedForms.Add(Constants.FORMC);
                            }
                            if (Utils.GetIntValue(drSubmission["form4id"]) > 0)
                            {
                                sub.SubmittedForms.Add(Constants.FORMD);
                            }



                            if (AllSubmissions == null)
                            {
                                AllSubmissions = new List <SubmissionEntity>();
                            }
                            AllSubmissions.Add(sub);
                        }
                    }
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }
            return(AllSubmissions);
        }