public PhonebookNote GetPhonebookNote(int id)
        {
            PhonebookNote PhonebookNote = null;

            string queryString =
                selectString +
                "WHERE Id = @Id;";

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

                connection.Open();
                using (SqlDataReader reader = command.ExecuteReader())
                {
                    if (reader.Read())
                    {
                        PhonebookNote = Read(reader);
                    }
                }
            }
            return(PhonebookNote);
        }
        public static List <PhonebookNoteViewModel> ConvertToPhonebookNoteViewModelList(this IEnumerable <PhonebookNote> PhonebookNotes)
        {
            List <PhonebookNoteViewModel> PhonebookNoteViewModels = new List <PhonebookNoteViewModel>();

            foreach (PhonebookNote PhonebookNote in PhonebookNotes)
            {
                PhonebookNoteViewModels.Add(PhonebookNote.ConvertToPhonebookNoteViewModel());
            }
            return(PhonebookNoteViewModels);
        }
        private static PhonebookNote Read(SqlDataReader reader)
        {
            PhonebookNote PhonebookNote = new PhonebookNote();

            PhonebookNote.Id         = Int32.Parse(reader["PhonebookNoteId"].ToString());
            PhonebookNote.Identifier = Guid.Parse(reader["PhonebookNoteIdentifier"].ToString());

            if (reader["PhonebookId"] != DBNull.Value)
            {
                PhonebookNote.Phonebook            = new Phonebook();
                PhonebookNote.PhonebookId          = Int32.Parse(reader["PhonebookId"].ToString());
                PhonebookNote.Phonebook.Id         = Int32.Parse(reader["PhonebookId"].ToString());
                PhonebookNote.Phonebook.Identifier = Guid.Parse(reader["PhonebookIdentifier"].ToString());
                PhonebookNote.Phonebook.Code       = reader["PhonebookCode"].ToString();
                PhonebookNote.Phonebook.Name       = reader["PhonebookName"].ToString();
            }


            if (reader["Note"] != DBNull.Value)
            {
                PhonebookNote.Note = reader["Note"].ToString();
            }
            if (reader["NoteDate"] != DBNull.Value)
            {
                PhonebookNote.NoteDate = DateTime.Parse(reader["NoteDate"].ToString());
            }
            if (reader["ItemStatus"] != DBNull.Value)
            {
                PhonebookNote.ItemStatus = Int32.Parse(reader["ItemStatus"].ToString());
            }
            PhonebookNote.Active    = bool.Parse(reader["Active"].ToString());
            PhonebookNote.UpdatedAt = DateTime.Parse(reader["UpdatedAt"].ToString());

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

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

            return(PhonebookNote);
        }
        public PhonebookNote Delete(Guid identifier)
        {
            PhonebookNote dbEntry = context.PhonebookNotes
                                    .Union(context.ChangeTracker.Entries()
                                           .Where(x => x.State == EntityState.Added && x.Entity.GetType() == typeof(PhonebookNote))
                                           .Select(x => x.Entity as PhonebookNote))
                                    .FirstOrDefault(x => x.Identifier == identifier && x.Active == true);

            if (dbEntry != null)
            {
                dbEntry.Active    = false;
                dbEntry.UpdatedAt = DateTime.Now;
            }
            return(dbEntry);
        }
        public static PhonebookNoteViewModel ConvertToPhonebookNoteViewModelLite(this PhonebookNote PhonebookNote)
        {
            PhonebookNoteViewModel PhonebookNoteViewModel = new PhonebookNoteViewModel()
            {
                Id         = PhonebookNote.Id,
                Identifier = PhonebookNote.Identifier,

                Note     = PhonebookNote.Note,
                NoteDate = PhonebookNote.NoteDate,

                ItemStatus = PhonebookNote.ItemStatus,
                IsActive   = PhonebookNote.Active,

                UpdatedAt = PhonebookNote.UpdatedAt,
                CreatedAt = PhonebookNote.CreatedAt,
            };

            return(PhonebookNoteViewModel);
        }
        public PhonebookNote Create(PhonebookNote PhonebookNote)
        {
            if (context.PhonebookNotes.Where(x => x.Identifier != null && x.Identifier == PhonebookNote.Identifier).Count() == 0)
            {
                PhonebookNote.Id = 0;

                PhonebookNote.Active    = true;
                PhonebookNote.UpdatedAt = DateTime.Now;
                PhonebookNote.CreatedAt = DateTime.Now;

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

                if (dbEntry != null)
                {
                    dbEntry.PhonebookId = PhonebookNote.PhonebookId ?? null;
                    dbEntry.CompanyId   = PhonebookNote.CompanyId ?? null;
                    dbEntry.CreatedById = PhonebookNote.CreatedById ?? null;

                    // Set properties

                    dbEntry.Note     = PhonebookNote.Note;
                    dbEntry.NoteDate = PhonebookNote.NoteDate;

                    dbEntry.ItemStatus = PhonebookNote.ItemStatus;

                    // Set timestamp
                    dbEntry.UpdatedAt = DateTime.Now;
                }

                return(dbEntry);
            }
        }
        public static PhonebookNote ConvertToPhonebookNote(this PhonebookNoteViewModel PhonebookNoteViewModel)
        {
            PhonebookNote PhonebookNote = new PhonebookNote()
            {
                Id         = PhonebookNoteViewModel.Id,
                Identifier = PhonebookNoteViewModel.Identifier,

                PhonebookId = PhonebookNoteViewModel.Phonebook?.Id ?? null,

                Note     = PhonebookNoteViewModel.Note,
                NoteDate = PhonebookNoteViewModel.NoteDate,

                ItemStatus  = PhonebookNoteViewModel.ItemStatus,
                Active      = PhonebookNoteViewModel.IsActive,
                CreatedById = PhonebookNoteViewModel.CreatedBy?.Id ?? null,
                CompanyId   = PhonebookNoteViewModel.Company?.Id ?? null,

                UpdatedAt = PhonebookNoteViewModel.UpdatedAt,
                CreatedAt = PhonebookNoteViewModel.CreatedAt,
            };

            return(PhonebookNote);
        }
        public static PhonebookNoteViewModel ConvertToPhonebookNoteViewModel(this PhonebookNote PhonebookNote)
        {
            PhonebookNoteViewModel PhonebookNoteViewModel = new PhonebookNoteViewModel()
            {
                Id         = PhonebookNote.Id,
                Identifier = PhonebookNote.Identifier,

                Phonebook = PhonebookNote.Phonebook?.ConvertToPhonebookViewModelLite(),

                Note     = PhonebookNote.Note,
                NoteDate = PhonebookNote.NoteDate,

                ItemStatus = PhonebookNote.ItemStatus,
                IsActive   = PhonebookNote.Active,

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

                UpdatedAt = PhonebookNote.UpdatedAt,
                CreatedAt = PhonebookNote.CreatedAt,
            };

            return(PhonebookNoteViewModel);
        }
예제 #9
0
        public PhonebookResponse Create(PhonebookViewModel re)
        {
            PhonebookResponse response = new PhonebookResponse();

            try
            {
                // Backup notes
                List <PhonebookNoteViewModel> PhonebookNotes = re.PhonebookNotes?.ToList();
                re.PhonebookNotes = null;

                // Backup documents
                List <PhonebookDocumentViewModel> PhonebookDocuments = re.PhonebookDocuments?.ToList();
                re.PhonebookDocuments = null;

                // Backup phone
                List <PhonebookPhoneViewModel> PhonebookPhones = re.PhonebookPhones?.ToList();
                re.PhonebookPhones = null;

                Phonebook createdPhonebook = unitOfWork.GetPhonebookRepository().Create(re.ConvertToPhonebook());

                // Update notes
                if (PhonebookNotes != null && PhonebookNotes.Count > 0)
                {
                    // Items for create or update
                    foreach (var PhonebookNote in PhonebookNotes
                             .Where(x => x.ItemStatus == ItemStatus.Added || x.ItemStatus == ItemStatus.Edited)?.ToList() ?? new List <PhonebookNoteViewModel>())
                    {
                        PhonebookNote.Phonebook = new PhonebookViewModel()
                        {
                            Id = createdPhonebook.Id
                        };
                        PhonebookNote.ItemStatus = ItemStatus.Submited;
                        PhonebookNote createdPhonebookNote = unitOfWork.GetPhonebookNoteRepository()
                                                             .Create(PhonebookNote.ConvertToPhonebookNote());
                    }

                    foreach (var item in PhonebookNotes
                             .Where(x => x.ItemStatus == ItemStatus.Deleted)?.ToList() ?? new List <PhonebookNoteViewModel>())
                    {
                        item.Phonebook = new PhonebookViewModel()
                        {
                            Id = createdPhonebook.Id
                        };
                        unitOfWork.GetPhonebookNoteRepository().Create(item.ConvertToPhonebookNote());

                        unitOfWork.GetPhonebookNoteRepository().Delete(item.Identifier);
                    }
                }

                // Update documents
                if (PhonebookDocuments != null && PhonebookDocuments.Count > 0)
                {
                    // Items for create or update
                    foreach (var PhonebookDocument in PhonebookDocuments
                             .Where(x => x.ItemStatus == ItemStatus.Added || x.ItemStatus == ItemStatus.Edited)?.ToList() ?? new List <PhonebookDocumentViewModel>())
                    {
                        PhonebookDocument.Phonebook = new PhonebookViewModel()
                        {
                            Id = createdPhonebook.Id
                        };
                        PhonebookDocument.ItemStatus = ItemStatus.Submited;
                        PhonebookDocument createdPhonebookDocument = unitOfWork.GetPhonebookDocumentRepository()
                                                                     .Create(PhonebookDocument.ConvertToPhonebookDocument());
                    }

                    foreach (var item in PhonebookDocuments
                             .Where(x => x.ItemStatus == ItemStatus.Deleted)?.ToList() ?? new List <PhonebookDocumentViewModel>())
                    {
                        item.Phonebook = new PhonebookViewModel()
                        {
                            Id = createdPhonebook.Id
                        };
                        unitOfWork.GetPhonebookDocumentRepository().Create(item.ConvertToPhonebookDocument());

                        unitOfWork.GetPhonebookDocumentRepository().Delete(item.Identifier);
                    }
                }

                // Update Phones
                if (PhonebookPhones != null && PhonebookPhones.Count > 0)
                {
                    // Items for create or update
                    foreach (var PhonebookPhone in PhonebookPhones
                             .Where(x => x.ItemStatus == ItemStatus.Added || x.ItemStatus == ItemStatus.Edited)?.ToList() ?? new List <PhonebookPhoneViewModel>())
                    {
                        PhonebookPhone.Phonebook = new PhonebookViewModel()
                        {
                            Id = createdPhonebook.Id
                        };
                        PhonebookPhone.ItemStatus = ItemStatus.Submited;
                        PhonebookPhone createdPhonebookPhone = unitOfWork.GetPhonebookPhoneRepository()
                                                               .Create(PhonebookPhone.ConvertToPhonebookPhone());
                    }

                    foreach (var item in PhonebookPhones
                             .Where(x => x.ItemStatus == ItemStatus.Deleted)?.ToList() ?? new List <PhonebookPhoneViewModel>())
                    {
                        item.Phonebook = new PhonebookViewModel()
                        {
                            Id = createdPhonebook.Id
                        };
                        unitOfWork.GetPhonebookPhoneRepository().Create(item.ConvertToPhonebookPhone());

                        unitOfWork.GetPhonebookPhoneRepository().Delete(item.Identifier);
                    }
                }

                unitOfWork.Save();

                response.Phonebook = createdPhonebook.ConvertToPhonebookViewModel();
                response.Success   = true;
            }
            catch (Exception ex)
            {
                response.Phonebook = new PhonebookViewModel();
                response.Success   = false;
                response.Message   = ex.Message;
            }

            return(response);
        }