Beispiel #1
0
        public MainResponse AddUpdateGroup(GroupRequest request)
        {
            if (request.GroupId == null || request.GroupId <= 0)
            {
                var checkexist = _GroupRepository.GetSingle(x => x.GroupName == request.GroupName &&
                                                            x.IsActive == true && x.IsDeleted == false);
                if (checkexist != null && checkexist.GroupId > 0)
                {
                    _mainResponse.Message = Constants.NAME_ALREADY_EXIST;
                    _mainResponse.Success = false;
                    return(_mainResponse);
                }

                var addressEntity = new Addresses
                {
                    Address     = request.Address,
                    StateId     = request.StateId,
                    City        = request.City,
                    ZipCode     = request.ZipCode,
                    CreatedDate = DateTime.Now,
                    IsActive    = true,
                    IsDeleted   = false,
                };
                var address = _AddressRepository.Add(addressEntity);
                var Group   = new Groups
                {
                    GroupName      = request.GroupName,
                    ContactName    = request.ContactName,
                    Phone          = request.Phone,
                    Email          = request.Email,
                    AmountReceived = request.AmountReceived,
                    AddressId      = address != null ? address.AddressId : 0,
                    CreatedDate    = DateTime.Now,
                    IsActive       = true,
                    IsDeleted      = false,
                };
                var Data = _GroupRepository.Add(Group);
                if (Data != null && Data.GroupId > 0 && request.groupStallAssignmentRequests != null && request.groupStallAssignmentRequests.Count > 0)
                {
                    StallAssignment stallAssignment;
                    foreach (var item in request.groupStallAssignmentRequests)
                    {
                        stallAssignment         = new StallAssignment();
                        stallAssignment.StallId = item.SelectedStallId;
                        stallAssignment.StallAssignmentTypeId = item.StallAssignmentTypeId;
                        stallAssignment.GroupId      = Data.GroupId;
                        stallAssignment.ExhibitorId  = 0;
                        stallAssignment.BookedByType = "Group";
                        stallAssignment.IsActive     = true;
                        stallAssignment.IsDeleted    = false;
                        stallAssignment.CreatedDate  = DateTime.Now;
                        stallAssignment.Date         = item.StallAssignmentDate;
                        _stallAssignmentRepository.Add(stallAssignment);
                    }
                }
                _mainResponse.Message      = Constants.RECORD_ADDED_SUCCESS;
                _mainResponse.Success      = true;
                _mainResponse.NewId        = Data.GroupId;
                newIdResponse.NewId        = Data.GroupId;
                _mainResponse.BaseResponse = newIdResponse;
            }
            else
            {
                var Group = _GroupRepository.GetSingle(x => x.GroupId == request.GroupId && x.IsActive == true && x.IsDeleted == false);
                if (Group != null && Group.GroupId > 0)
                {
                    Group.GroupName      = request.GroupName;
                    Group.ContactName    = request.ContactName;
                    Group.Phone          = request.Phone;
                    Group.Email          = request.Email;
                    Group.AmountReceived = request.AmountReceived;
                    Group.ModifiedDate   = DateTime.Now;
                    _GroupRepository.Update(Group);

                    var address = _AddressRepository.GetSingle(x => x.AddressId == Group.AddressId && x.IsActive == true && x.IsDeleted == false);
                    if (address != null && address.AddressId > 0)
                    {
                        address.Address      = request.Address;
                        address.StateId      = request.StateId;
                        address.City         = request.City;
                        address.ZipCode      = request.ZipCode;
                        address.ModifiedDate = DateTime.Now;
                        _AddressRepository.Update(address);
                    }
                    var stalls = _stallAssignmentRepository.RemoveAllGroupAssignedStalls(Group.GroupId);

                    if (request.groupStallAssignmentRequests != null && request.groupStallAssignmentRequests.Count > 0)
                    {
                        foreach (var assignment in request.groupStallAssignmentRequests)
                        {
                            StallAssignment stallAssignment = new StallAssignment();
                            stallAssignment.StallId = assignment.SelectedStallId;
                            stallAssignment.StallAssignmentTypeId = assignment.StallAssignmentTypeId;
                            stallAssignment.GroupId      = Group.GroupId;
                            stallAssignment.ExhibitorId  = 0;
                            stallAssignment.BookedByType = "Group";
                            stallAssignment.IsActive     = true;
                            stallAssignment.IsDeleted    = false;
                            stallAssignment.CreatedDate  = DateTime.Now;
                            stallAssignment.Date         = assignment.StallAssignmentDate;
                            _stallAssignmentRepository.Add(stallAssignment);
                        }
                    }

                    _mainResponse.Message      = Constants.RECORD_UPDATE_SUCCESS;
                    _mainResponse.Success      = true;
                    _mainResponse.NewId        = Convert.ToInt32(request.GroupId);
                    newIdResponse.NewId        = Convert.ToInt32(request.GroupId);
                    _mainResponse.BaseResponse = newIdResponse;
                }
                else
                {
                    _mainResponse.Message = Constants.NO_RECORD_EXIST_WITH_ID;
                    _mainResponse.Success = false;
                }
            }
            return(_mainResponse);
        }
        public MainResponse AddUpdateExhibitor(ExhibitorRequest request, string actionBy)
        {
            if (request.ExhibitorId <= 0)
            {
                if (request.BackNumber != null)
                {
                    var exhibitorBackNumberExist = _exhibitorRepository.GetSingle(x => x.BackNumber == request.BackNumber && x.IsActive == true && x.IsDeleted == false);
                    if (exhibitorBackNumberExist != null && exhibitorBackNumberExist.ExhibitorId > 0)
                    {
                        _mainResponse.Message = Constants.BACKNUMBER_AlREADY_EXIST;
                        _mainResponse.Success = false;
                        return(_mainResponse);
                    }
                }

                var address = new Addresses
                {
                    Address     = request.Address,
                    CityId      = request.CityId,
                    ZipCodeId   = request.ZipCodeId,
                    CreatedBy   = actionBy,
                    CreatedDate = DateTime.Now
                };

                var _address = _addressRepository.Add(address);

                var exhibitor = new Exhibitors
                {
                    AddressId      = _address.AddressId,
                    FirstName      = request.FirstName,
                    LastName       = request.LastName,
                    BackNumber     = request.BackNumber,
                    BirthYear      = request.BirthYear,
                    IsNSBAMember   = request.IsNSBAMember,
                    IsDoctorNote   = request.IsDoctorNote,
                    QTYProgram     = request.QTYProgram,
                    PrimaryEmail   = request.PrimaryEmail,
                    SecondaryEmail = request.SecondaryEmail,
                    Phone          = request.Phone,
                    Date           = request.Date,
                    CreatedBy      = actionBy,
                    CreatedDate    = DateTime.Now,
                    IsActive       = true,
                    IsDeleted      = false
                };

                var _exhibitor = _exhibitorRepository.Add(exhibitor);

                if (request.GroupId > 0)
                {
                    var groupExhibitor = new GroupExhibitors
                    {
                        ExhibitorId = _exhibitor.ExhibitorId,
                        GroupId     = request.GroupId,
                        CreatedBy   = actionBy,
                        CreatedDate = DateTime.Now,
                        IsActive    = true,
                        IsDeleted   = false
                    };
                    var _groupExhibitor = _groupExhibitorRepository.Add(groupExhibitor);
                }

                if (_exhibitor != null && _exhibitor.ExhibitorId > 0 && request.exhibitorStallAssignmentRequests != null && request.exhibitorStallAssignmentRequests.Count > 0)
                {
                    StallAssignment stallAssignment;
                    foreach (var item in request.exhibitorStallAssignmentRequests)
                    {
                        stallAssignment         = new StallAssignment();
                        stallAssignment.StallId = item.SelectedStallId;
                        stallAssignment.StallAssignmentTypeId = item.StallAssignmentTypeId;
                        stallAssignment.GroupId      = 0;
                        stallAssignment.ExhibitorId  = _exhibitor.ExhibitorId;
                        stallAssignment.BookedByType = "Exhibitor";
                        stallAssignment.IsActive     = true;
                        stallAssignment.IsDeleted    = false;
                        stallAssignment.CreatedDate  = DateTime.Now;
                        stallAssignment.Date         = item.StallAssignmentDate;
                        _stallAssignmentRepository.Add(stallAssignment);
                    }
                }

                _mainResponse.Message = Constants.RECORD_ADDED_SUCCESS;
                _mainResponse.NewId   = _exhibitor.ExhibitorId;
                _mainResponse.Success = true;
            }
            else
            {
                if (request.BackNumber != null)
                {
                    var backNumber = _exhibitorRepository.GetSingle(x => x.ExhibitorId == request.ExhibitorId && x.BackNumber == request.BackNumber && x.IsActive == true && x.IsDeleted == false);
                    if (backNumber == null)
                    {
                        var exhibitorBackNumberExist = _exhibitorRepository.GetSingle(x => x.BackNumber == request.BackNumber && x.IsActive == true && x.IsDeleted == false);
                        if (exhibitorBackNumberExist != null && exhibitorBackNumberExist.ExhibitorId > 0)
                        {
                            _mainResponse.Message = Constants.BACKNUMBER_AlREADY_EXIST;
                            _mainResponse.Success = false;
                            return(_mainResponse);
                        }
                    }
                }

                var exhibitor = _exhibitorRepository.GetSingle(x => x.ExhibitorId == request.ExhibitorId && x.IsActive == true && x.IsDeleted == false);

                if (exhibitor != null && exhibitor.ExhibitorId > 0)
                {
                    exhibitor.FirstName      = request.FirstName;
                    exhibitor.LastName       = request.LastName;
                    exhibitor.BackNumber     = request.BackNumber;
                    exhibitor.BirthYear      = request.BirthYear;
                    exhibitor.IsNSBAMember   = request.IsNSBAMember;
                    exhibitor.IsDoctorNote   = request.IsDoctorNote;
                    exhibitor.QTYProgram     = request.QTYProgram;
                    exhibitor.PrimaryEmail   = request.PrimaryEmail;
                    exhibitor.SecondaryEmail = request.SecondaryEmail;
                    exhibitor.Phone          = request.Phone;
                    exhibitor.ModifiedDate   = DateTime.Now;
                    exhibitor.ModifiedBy     = actionBy;
                    _exhibitorRepository.Update(exhibitor);
                    _mainResponse.Message = Constants.RECORD_UPDATE_SUCCESS;
                    _mainResponse.NewId   = request.ExhibitorId;
                    _mainResponse.Success = true;

                    var address = _addressRepository.GetSingle(x => x.AddressId == request.AddressId && x.IsActive == true && x.IsDeleted == false);
                    if (address != null && address.AddressId > 0)
                    {
                        address.Address      = request.Address;
                        address.CityId       = request.CityId;
                        address.ZipCodeId    = request.ZipCodeId;
                        address.ModifiedBy   = actionBy;
                        address.ModifiedDate = DateTime.Now;
                        _addressRepository.Update(address);
                    }

                    var stalls = _stallAssignmentRepository.RemoveAllExhibitorAssignedStalls(exhibitor.ExhibitorId);


                    if (request.exhibitorStallAssignmentRequests != null && request.exhibitorStallAssignmentRequests.Count > 0)
                    {
                        foreach (var assignment in request.exhibitorStallAssignmentRequests)
                        {
                            StallAssignment stallAssignment = new StallAssignment();
                            stallAssignment.StallId = assignment.SelectedStallId;
                            stallAssignment.StallAssignmentTypeId = assignment.StallAssignmentTypeId;
                            stallAssignment.GroupId      = 0;
                            stallAssignment.ExhibitorId  = exhibitor.ExhibitorId;
                            stallAssignment.BookedByType = "Exhibitor";
                            stallAssignment.IsActive     = true;
                            stallAssignment.IsDeleted    = false;
                            stallAssignment.CreatedDate  = DateTime.Now;
                            stallAssignment.Date         = assignment.StallAssignmentDate;
                            _stallAssignmentRepository.Add(stallAssignment);
                        }
                    }

                    if (request.GroupId > 0)
                    {
                        var groupExhibitor = _groupExhibitorRepository.GetSingle(x => x.ExhibitorId == exhibitor.ExhibitorId);
                        if (groupExhibitor != null && groupExhibitor.GroupExhibitorId > 0)
                        {
                            groupExhibitor.GroupId      = request.GroupId;
                            groupExhibitor.ModifiedBy   = actionBy;
                            groupExhibitor.ModifiedDate = DateTime.Now;
                            _groupExhibitorRepository.Update(groupExhibitor);
                        }
                        else
                        {
                            var group = new GroupExhibitors
                            {
                                GroupId     = request.GroupId,
                                ExhibitorId = request.ExhibitorId,
                                CreatedBy   = actionBy,
                                CreatedDate = DateTime.Now
                            };
                            _groupExhibitorRepository.Add(group);
                        }
                    }
                    else
                    {
                        var groupExhibitor = _groupExhibitorRepository.GetSingle(x => x.ExhibitorId == exhibitor.ExhibitorId);
                        if (groupExhibitor != null && groupExhibitor.GroupExhibitorId > 0)
                        {
                            groupExhibitor.IsActive  = false;
                            groupExhibitor.IsDeleted = true;
                            _groupExhibitorRepository.Update(groupExhibitor);
                        }
                    }
                }
                else
                {
                    _mainResponse.Message = Constants.NO_RECORD_EXIST_WITH_ID;
                    _mainResponse.Success = false;
                }
            }
            return(_mainResponse);
        }