/// <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)); }
/// <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"); } }
/// <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)); }
/// <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); } }