public async Task <IActionResult> Create([FromBody] NumberingSequenceDto input) { var user = User.GetDetails(); var numberingSequence = new NumberingSequence(input.Prefix, input.Number, input.Status, input.NumberingSequenceType, user.Id); if (await _unitOfWork.NumberingSequences.AnyAsync(numberingSequence)) { return(BadRequest("Numbering Sequence Already Exists")); } _unitOfWork.NumberingSequences.Add(numberingSequence); await _unitOfWork.CompleteAsync(user.Id); return(Ok(numberingSequence)); }
internal void setNumberingType(NumberingSequence seq) { this.seq = seq; }
/* ---------------------------------------------------------------------------- mapFormatToken() Maps a token of alphanumeric characters to a numbering format ID and a minimum length bound. Tokens specify the character(s) that begins a Unicode numbering sequence. For example, "i" specifies lower case roman numeral numbering. Leading "zeros" specify a minimum length to be maintained by padding, if necessary. ---------------------------------------------------------------------------- */ private static void mapFormatToken(String wsToken, int startLen, int tokLen, out NumberingSequence seq, out int pminlen) { char wch = wsToken[startLen]; bool UseArabic = false; pminlen = 1; seq = NumberingSequence.Nil; switch ((int)wch) { case 0x0030: // Digit zero case 0x0966: // Hindi digit zero case 0x0e50: // Thai digit zero case 0xc77b: // Korean digit zero case 0xff10: // Digit zero (double-byte) do { // Leading zeros request padding. Track how much. pminlen++; } while ((--tokLen > 0) && (wch == wsToken[++startLen])); if (wsToken[startLen] != (char)(wch + 1)) { // If next character isn't "one", then use Arabic UseArabic = true; } break; } if (!UseArabic) { // Map characters of token to number format ID switch ((int)wsToken[startLen]) { case 0x0031: seq = NumberingSequence.Arabic; break; case 0x0041: seq = NumberingSequence.UCLetter; break; case 0x0049: seq = NumberingSequence.UCRoman; break; case 0x0061: seq = NumberingSequence.LCLetter; break; case 0x0069: seq = NumberingSequence.LCRoman; break; case 0x0410: seq = NumberingSequence.UCRus; break; case 0x0430: seq = NumberingSequence.LCRus; break; case 0x05d0: seq = NumberingSequence.Hebrew; break; case 0x0623: seq = NumberingSequence.ArabicScript; break; case 0x0905: seq = NumberingSequence.Hindi2; break; case 0x0915: seq = NumberingSequence.Hindi1; break; case 0x0967: seq = NumberingSequence.Hindi3; break; case 0x0e01: seq = NumberingSequence.Thai1; break; case 0x0e51: seq = NumberingSequence.Thai2; break; case 0x30a2: seq = NumberingSequence.DAiueo; break; case 0x30a4: seq = NumberingSequence.DIroha; break; case 0x3131: seq = NumberingSequence.DChosung; break; case 0x4e00: seq = NumberingSequence.FEDecimal; break; case 0x58f1: seq = NumberingSequence.DbNum3; break; case 0x58f9: seq = NumberingSequence.ChnCmplx; break; case 0x5b50: seq = NumberingSequence.Zodiac2; break; case 0xac00: seq = NumberingSequence.Ganada; break; case 0xc77c: seq = NumberingSequence.KorDbNum1; break; case 0xd558: seq = NumberingSequence.KorDbNum3; break; case 0xff11: seq = NumberingSequence.DArabic; break; case 0xff71: seq = NumberingSequence.Aiueo; break; case 0xff72: seq = NumberingSequence.Iroha; break; case 0x7532: if (tokLen > 1 && wsToken[startLen + 1] == 0x5b50) { // 60-based Zodiak numbering begins with two characters seq = NumberingSequence.Zodiac3; tokLen--; startLen++; } else { // 10-based Zodiak numbering begins with one character seq = NumberingSequence.Zodiac1; } break; default: seq = NumberingSequence.Arabic; break; } } //if (tokLen != 1 || UseArabic) { if (UseArabic) { // If remaining token length is not 1, then don't recognize // sequence and default to Arabic with no zero padding. seq = NumberingSequence.Arabic; pminlen = 0; } }
/* * ---------------------------------------------------------------------------- * mapFormatToken() * * Maps a token of alphanumeric characters to a numbering format ID and a * minimum length bound. Tokens specify the character(s) that begins a * Unicode * numbering sequence. For example, "i" specifies lower case roman numeral * numbering. Leading "zeros" specify a minimum length to be maintained by * padding, if necessary. * ---------------------------------------------------------------------------- */ private static void mapFormatToken(string wsToken, int startLen, int tokLen, out NumberingSequence seq, out int pminlen) { char wch = wsToken[startLen]; bool UseArabic = false; pminlen = 1; seq = NumberingSequence.Nil; switch ((int)wch) { case 0x0030: // Digit zero case 0x0966: // Hindi digit zero case 0x0e50: // Thai digit zero case 0xc77b: // Korean digit zero case 0xff10: // Digit zero (double-byte) do { // Leading zeros request padding. Track how much. pminlen++; } while ((--tokLen > 0) && (wch == wsToken[++startLen])); if (wsToken[startLen] != (char)(wch + 1)) { // If next character isn't "one", then use Arabic UseArabic = true; } break; } if (!UseArabic) { // Map characters of token to number format ID switch ((int)wsToken[startLen]) { case 0x0031: seq = NumberingSequence.Arabic; break; case 0x0041: seq = NumberingSequence.UCLetter; break; case 0x0049: seq = NumberingSequence.UCRoman; break; case 0x0061: seq = NumberingSequence.LCLetter; break; case 0x0069: seq = NumberingSequence.LCRoman; break; case 0x0410: seq = NumberingSequence.UCRus; break; case 0x0430: seq = NumberingSequence.LCRus; break; case 0x05d0: seq = NumberingSequence.Hebrew; break; case 0x0623: seq = NumberingSequence.ArabicScript; break; case 0x0905: seq = NumberingSequence.Hindi2; break; case 0x0915: seq = NumberingSequence.Hindi1; break; case 0x0967: seq = NumberingSequence.Hindi3; break; case 0x0e01: seq = NumberingSequence.Thai1; break; case 0x0e51: seq = NumberingSequence.Thai2; break; case 0x30a2: seq = NumberingSequence.DAiueo; break; case 0x30a4: seq = NumberingSequence.DIroha; break; case 0x3131: seq = NumberingSequence.DChosung; break; case 0x4e00: seq = NumberingSequence.FEDecimal; break; case 0x58f1: seq = NumberingSequence.DbNum3; break; case 0x58f9: seq = NumberingSequence.ChnCmplx; break; case 0x5b50: seq = NumberingSequence.Zodiac2; break; case 0xac00: seq = NumberingSequence.Ganada; break; case 0xc77c: seq = NumberingSequence.KorDbNum1; break; case 0xd558: seq = NumberingSequence.KorDbNum3; break; case 0xff11: seq = NumberingSequence.DArabic; break; case 0xff71: seq = NumberingSequence.Aiueo; break; case 0xff72: seq = NumberingSequence.Iroha; break; case 0x7532: if (tokLen > 1 && wsToken[startLen + 1] == 0x5b50) { // 60-based Zodiak numbering begins with two characters seq = NumberingSequence.Zodiac3; tokLen--; startLen++; } else { // 10-based Zodiak numbering begins with one character seq = NumberingSequence.Zodiac1; } break; default: seq = NumberingSequence.Arabic; break; } } //if (tokLen != 1 || UseArabic) { if (UseArabic) { // If remaining token length is not 1, then don't recognize // sequence and default to Arabic with no zero padding. seq = NumberingSequence.Arabic; pminlen = 0; } }
internal void setNumberingType(NumberingSequence seq) { _seq = seq; }