Ejemplo n.º 1
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ErrorReason"/> class.
 /// </summary>
 /// <param name="id">Error Reason Id.</param>
 /// <param name="code">Error Reason Code.</param>
 /// <param name="name">Error Reason Name.</param>
 /// <param name="errorReasonGroup">Error Reason  Group.</param>
 public ErrorReason(
     Guid id,
     string code,
     string name,
     IErrorReasonGroup errorReasonGroup)
 {
     this.Id               = id;
     this.Code             = code ?? throw new ArgumentNullException(nameof(code));
     this.Name             = name ?? throw new ArgumentNullException(nameof(name));
     this.ErrorReasonGroup = errorReasonGroup ?? throw new ArgumentNullException(nameof(errorReasonGroup));
 }
Ejemplo n.º 2
0
        /// <inheritdoc/>
        public void CreateErrorReasonGroup(IErrorReasonGroup errorReasonGroup)
        {
            ErrorReasonGroupDto errorReasonGroupDto = ErrorReasonGroupDto.ToDto(errorReasonGroup);

            this.Context.ErrorReasonGroups.Add(errorReasonGroupDto);
            int count = this.Context.SaveChanges();

            if (count != 1)
            {
                throw new ApplicationException($"Unexpectedly created {count} rows");
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Converts domain object to dto.
        /// </summary>
        /// <param name="errorReasonGroup">The error reason group.</param>
        /// <returns>Error Reason Group DTO.</returns>
        public static ErrorReasonGroupDto ToDto(IErrorReasonGroup errorReasonGroup)
        {
            if (errorReasonGroup == null)
            {
                throw new ArgumentNullException(nameof(errorReasonGroup));
            }

            return(new ErrorReasonGroupDto(
                       id: errorReasonGroup.Id,
                       code: errorReasonGroup.Code,
                       name: errorReasonGroup.Name));
        }
Ejemplo n.º 4
0
        /// <inheritdoc/>
        public void ErrorReasons(ICaller caller)
        {
            using IDealData data = InstanceFactory.GetInstance <IDealData>();

            if (data.AnyErrorReason())
            {
                return;
            }

            IList <IErrorReasonGroup> errorReasonGroups = data.ReadAllErrorReasonGroups();

            IErrorReasonGroup errorReasonGroupSet = errorReasonGroups
                                                    .Single(erg => erg.Code == "SET");
            IErrorReasonGroup errorReasonGroupPack = errorReasonGroups
                                                     .Single(erg => erg.Code == "PACK");

            IDictionary <string, string> errorReasonDetails = new Dictionary <string, string>
            {
                { "MULTIJAM", "Multi-card jam" },
                { "INVERTED", "Inverted card" },
                { "MISCOUNT", "Wrong number of cards in a hand" },
                { "MISSING", "Missing card" },
            };

            foreach (KeyValuePair <string, string> errorReasonGroupDetail in errorReasonDetails)
            {
                IErrorReason errorReason = new ErrorReason(
                    id: Guid.NewGuid(),
                    code: errorReasonGroupDetail.Key,
                    name: errorReasonGroupDetail.Value,
                    errorReasonGroup: errorReasonGroupSet);
                data.CreateErrorReason(errorReason);
            }

            errorReasonDetails = new Dictionary <string, string>
            {
                { "NOTKNOWN", "Card not recognised" },
                { "ALREADY-DEALT", "Card already dealt" },
                { "JAM", "Card jammed" }
            };

            foreach (KeyValuePair <string, string> errorReasonGroupDetail in errorReasonDetails)
            {
                IErrorReason errorReason = new ErrorReason(
                    id: Guid.NewGuid(),
                    code: errorReasonGroupDetail.Key,
                    name: errorReasonGroupDetail.Value,
                    errorReasonGroup: errorReasonGroupPack);
                data.CreateErrorReason(errorReason);
            }
        }