public static CallCentarViewModel ConvertToCallCentarViewModel(this CallCentar CallCentar)
        {
            CallCentarViewModel CallCentarViewModel = new CallCentarViewModel()
            {
                Id         = CallCentar.Id,
                Identifier = CallCentar.Identifier,

                Code          = CallCentar.Code,
                ReceivingDate = CallCentar.ReceivingDate,

                User = CallCentar.User?.ConvertToUserViewModelLite(),

                Comment     = CallCentar.Comment,
                EndingDate  = CallCentar.EndingDate,
                CheckedDone = CallCentar.CheckedDone,
                IsActive    = CallCentar.Active,

                CreatedBy = CallCentar.CreatedBy?.ConvertToUserViewModelLite(),
                Company   = CallCentar.Company?.ConvertToCompanyViewModelLite(),

                UpdatedAt = CallCentar.UpdatedAt,
                CreatedAt = CallCentar.CreatedAt,
            };

            return(CallCentarViewModel);
        }
        public static CallCentar ConvertToCallCentar(this CallCentarViewModel CallCentarViewModel)
        {
            CallCentar CallCentar = new CallCentar()
            {
                Id         = CallCentarViewModel.Id,
                Identifier = CallCentarViewModel.Identifier,

                Code          = CallCentarViewModel.Code,
                ReceivingDate = CallCentarViewModel.ReceivingDate,

                UserId = CallCentarViewModel.User?.Id ?? null,

                Comment     = CallCentarViewModel.Comment,
                EndingDate  = CallCentarViewModel.EndingDate,
                CheckedDone = CallCentarViewModel.CheckedDone,
                Active      = CallCentarViewModel.IsActive,

                CreatedById = CallCentarViewModel.CreatedBy?.Id ?? null,
                CompanyId   = CallCentarViewModel.Company?.Id ?? null,

                CreatedAt = CallCentarViewModel.CreatedAt,
                UpdatedAt = CallCentarViewModel.UpdatedAt,
            };

            return(CallCentar);
        }
        private CallCentar Read(SqlDataReader reader)
        {
            CallCentar CallCentar = new CallCentar();

            CallCentar.Id         = Int32.Parse(reader["CallCentarId"].ToString());
            CallCentar.Identifier = Guid.Parse(reader["CallCentarIdentifier"].ToString());

            if (reader["CallCentarCode"] != DBNull.Value)
            {
                CallCentar.Code = reader["CallCentarCode"].ToString();
            }
            if (reader["CallCentarReceivingDate"] != DBNull.Value)
            {
                CallCentar.ReceivingDate = DateTime.Parse(reader["CallCentarReceivingDate"].ToString());
            }

            if (reader["UserId"] != DBNull.Value)
            {
                CallCentar.User            = new User();
                CallCentar.UserId          = Int32.Parse(reader["UserId"].ToString());
                CallCentar.User.Id         = Int32.Parse(reader["UserId"].ToString());
                CallCentar.User.Identifier = Guid.Parse(reader["UserIdentifier"].ToString());
                CallCentar.User.Code       = reader["UserCode"]?.ToString();
                CallCentar.User.FirstName  = reader["UserFirstName"]?.ToString();
                CallCentar.User.LastName   = reader["UserLastName"]?.ToString();
            }


            if (reader["CallCentarComment"] != DBNull.Value)
            {
                CallCentar.Comment = reader["CallCentarComment"].ToString();
            }
            if (reader["CallCentarEndingDate"] != DBNull.Value)
            {
                CallCentar.EndingDate = DateTime.Parse(reader["CallCentarEndingDate"].ToString());
            }

            CallCentar.CheckedDone = bool.Parse(reader["CheckedDone"].ToString());
            CallCentar.Active      = bool.Parse(reader["Active"].ToString());
            CallCentar.UpdatedAt   = DateTime.Parse(reader["UpdatedAt"].ToString());

            if (reader["CreatedById"] != DBNull.Value)
            {
                CallCentar.CreatedBy           = new User();
                CallCentar.CreatedById         = Int32.Parse(reader["CreatedById"].ToString());
                CallCentar.CreatedBy.Id        = Int32.Parse(reader["CreatedById"].ToString());
                CallCentar.CreatedBy.FirstName = reader["CreatedByFirstName"]?.ToString();
                CallCentar.CreatedBy.LastName  = reader["CreatedByLastName"]?.ToString();
            }

            if (reader["CompanyId"] != DBNull.Value)
            {
                CallCentar.Company      = new Company();
                CallCentar.CompanyId    = Int32.Parse(reader["CompanyId"].ToString());
                CallCentar.Company.Id   = Int32.Parse(reader["CompanyId"].ToString());
                CallCentar.Company.Name = reader["CompanyName"].ToString();
            }

            return(CallCentar);
        }
        public CallCentar GetCallCentar(int CallCentarId)
        {
            CallCentar CallCentar = null;

            string queryString =
                SelectString +
                "WHERE CallCentarId = @CallCentarId;";

            using (SqlConnection connection = new SqlConnection(connectionString))
            {
                SqlCommand command = connection.CreateCommand();
                command.CommandText = queryString;
                command.Parameters.Add(new SqlParameter("@CallCentarId", CallCentarId));

                connection.Open();
                using (SqlDataReader reader = command.ExecuteReader())
                {
                    if (reader.Read())
                    {
                        CallCentar = Read(reader);
                    }
                }
            }

            return(CallCentar);
        }
        public static List <CallCentarViewModel> ConvertToCallCentarViewModelList(this IEnumerable <CallCentar> callCentars)
        {
            List <CallCentarViewModel> CallCentarViewModels = new List <CallCentarViewModel>();

            foreach (CallCentar CallCentar in callCentars)
            {
                CallCentarViewModels.Add(CallCentar.ConvertToCallCentarViewModel());
            }
            return(CallCentarViewModels);
        }
        public CallCentar Delete(Guid identifier)
        {
            // Load item that will be deleted
            CallCentar dbEntry = context.CallCentars
                                 .FirstOrDefault(x => x.Identifier == identifier);

            if (dbEntry != null)
            {
                // Set activity
                dbEntry.Active = false;
                // Set timestamp
                dbEntry.UpdatedAt = DateTime.Now;
            }

            return(dbEntry);
        }
        public CallCentar Create(CallCentar CallCentar)
        {
            if (context.CallCentars.Where(x => x.Identifier != null && x.Identifier == CallCentar.Identifier).Count() == 0)
            {
                CallCentar.Id = 0;

                CallCentar.Code   = GetNewCodeValue(CallCentar.CompanyId ?? 0);
                CallCentar.Active = true;

                CallCentar.UpdatedAt = DateTime.Now;
                CallCentar.CreatedAt = DateTime.Now;

                context.CallCentars.Add(CallCentar);
                return(CallCentar);
            }
            else
            {
                // Load CallCentar that will be updated
                CallCentar dbEntry = context.CallCentars
                                     .FirstOrDefault(x => x.Identifier == CallCentar.Identifier && x.Active == true);

                if (dbEntry != null)
                {
                    dbEntry.CompanyId   = CallCentar.CompanyId ?? null;
                    dbEntry.CreatedById = CallCentar.CreatedById ?? null;
                    dbEntry.UserId      = CallCentar.UserId ?? null;
                    // Set properties
                    dbEntry.Code          = CallCentar.Code;
                    dbEntry.ReceivingDate = CallCentar.ReceivingDate;
                    dbEntry.Comment       = CallCentar.Comment;
                    dbEntry.EndingDate    = CallCentar.EndingDate;
                    dbEntry.CheckedDone   = CallCentar.CheckedDone;
                    // Set timestamp
                    dbEntry.UpdatedAt = DateTime.Now;
                }

                return(dbEntry);
            }
        }
        public CallCentarResponse Delete(Guid identifier)
        {
            CallCentarResponse response = new CallCentarResponse();

            try
            {
                CallCentar deletedCallCentar = unitOfWork.GetCallCentarRepository().Delete(identifier);

                unitOfWork.Save();

                response.CallCentar = deletedCallCentar.ConvertToCallCentarViewModel();
                response.Success    = true;
            }
            catch (Exception ex)
            {
                response.CallCentar = new CallCentarViewModel();
                response.Success    = false;
                response.Message    = ex.Message;
            }

            return(response);
        }
        public CallCentarResponse Create(CallCentarViewModel re)
        {
            CallCentarResponse response = new CallCentarResponse();

            try
            {
                CallCentar addedCallCentar = unitOfWork.GetCallCentarRepository().Create(re.ConvertToCallCentar());

                unitOfWork.Save();

                response.CallCentar = addedCallCentar.ConvertToCallCentarViewModel();
                response.Success    = true;
            }
            catch (Exception ex)
            {
                response.CallCentar = new CallCentarViewModel();
                response.Success    = false;
                response.Message    = ex.Message;
            }

            return(response);
        }