using System.Collections.Generic;

namespace OnlineAssessment.Common
{
    public class ResponseMessage
    {
        public Dictionary<string, string> Values
        {
            get;
            set;
        }
    }

    public class Constant
    {
        public const string OdiwareApiTitle = "Odiware Online Assessment API - INSTITUTE";
        public const string OdiwareApiVersion = "v1";
        public const string User = "User";
        public const string UserGroup = "User Group";
        public const string Role = "Role";
        public const string Plan = "Plan";
        public const string Subscription = "Subscription";
        public const string ExamType = "Exam Type";
        public const string Institute = "Institute";
        public const string Class = "Class";
        public const string Category = "Category";
        public const string Subject = "Subject";
        public const string Tag = "Tag";
        public const string QuestionType = "Question Type";
        public const string Question = "Question";
        public const string StudyNote = "Study Note";
        public const string Exam = "Exam";
        public const string ExamAttempt = "Exam Attempt";
        public const string Practice = "Practice";
        public const string PracticeAttempt = "Practice Attempt";
        public const string Language = "Language";
    }

    public enum Message
    {
        Success = 1,
        Failure = -1,

        FailedToAdd = -2205,
        FailedToUpdate = -2206,
        FailedToDelete = -2207,
        FailedToSignIn = -2208,

        InvalidOperation = -1200,
        ObjectNotFound = -1201,
        ObjectNotAdded = -1202,
        IdMismatchBetweenBodyAndQueryString = -1208,
        FailedToAttach = -1210,
        FailedToDetach = -1211,
        MustNotEmpty = -1212,
        MustNotNull = -1213,
        MustGreaterThanZero = -1214,

        SucessfullyAdded = 1205,
        SucessfullyUpdated = 1206,
        SucessfullyDeleted = 1207,
        ObjectAddedSuccessfully = 1211,
        ObjectNotUpdated = -1212,
        ObjectUpdatedSuccessfully = 1212,

        ObjectNotDeleted = -1213,
        ObjectDeleteSuccessfully = 1213,

        InvalidInput = -4000,
        NotAllowedToResource = -4010,
        NoValidSubscription = -4020,
        NoData = -4040,
        AlreadyExist = -4050,

        NotAllowedToAddResourceOtherThanYours = -4020,
        NotAllowedToUpdateResourceOtherThanYours = -4030,
        NotAllowedToDeleteResourceOtherThanYours = -4040,
        NotAllowedToViewResourceOtherThanYours = -4050,

        AuthenticationFailed = -6000,

    }

    public enum UserMessage
    {
        InvalidUser = -4000,
        InvalidPasword = -4001,
        UserNotExists = -4010,
        UserAlreadyExists = -4020,
        UserNotAllowedToLogin = -4040,
        UserNotActive = -4050,
    }

    public enum UserOperation
    {
        Add,
        Update,
        Delete,
        View
    }

    public enum StatusCode
    {
        DRAFT = 1,
        PUBLISHED = 2,
        EXPIRED = 3
    }

    public enum COMPLEXITY
    {
        EASY = 1,
        MEDIUM = 2,
        DIFFICULT = 3
    }

    public enum QuestionTypeCode
    {
        MCQ = 1,
        MRQ = 2,
        TNF = 3,
        SUB = 4
    }

    public class State
    {
        public const string START = "Start";
        public const string PAUSE = "Pause";
        public const string RESUME = "Resume";
        public const string COMPLETED = "Completed";
    }




    public enum UserClaim
    {
        UserId = 3,
        RoleId = 4,
        InstituteId = 5
    }

    public class DOMAIN
    {
        public const string SCHEME = "http";
        public const string HOST = "demoui.odiprojects.com";
        public const string PORT = "80";
    }

    public enum GenderCode
    {
        MALE = 1,
        FEMALE = 2,
        PRIVATE = 3
    }

    public enum StateCode
    {
        AD,
        AR,
        AS,
        BR,
        CG,
        DL,
        GA,
        GJ,
        HR,
        HP,
        JK,
        JH,
        KA,
        KL,
        LD,
        MP,
        MH,
        MN,
        ML,
        MZ,
        NL,
        OD,
        PY,
        PB,
        RJ,
        SK,
        TN,
        TS,
        TR,
        UP,
        UK,
        WB,
        AN,
        CH,
        DD,
        LA,
        OT
    }


}
