Esempio n. 1
0
        private void AddNoteCommandExecuted()
        {
            RaisePropertyChanged("DisableParentWindow");
            _originalEnquiryAfterNotes = Enquiry.Clone();
            var window = new AddNoteView(Enquiry);
            window.ShowDialog();

            RaisePropertyChanged("EnableParentWindow");
        }
Esempio n. 2
0
        public AddNoteView(EnquiryModel enquiryModel, EnquiryNoteModel note = null)
        {
            InitializeComponent();
            DataContext = _viewModel = new AddEnquiryNoteViewModel(enquiryModel, note);

            Owner = Application.Current.MainWindow;

            Loaded += OnAddNoteViewLoaded;
        }
Esempio n. 3
0
        public AddFollowUpView(EnquiryModel enquiryModel, bool addToActivity, FollowUpModel followUp = null)
        {
            InitializeComponent();
            DataContext = ViewModel = new AddFollowUpViewModel(enquiryModel, addToActivity, followUp);

            Owner = Application.Current.MainWindow;

            Loaded += OnAddFollowUpViewLoaded;
        }
Esempio n. 4
0
        public NewEnquiryView(EnquiryModel enquiryModel = null)
        {
            InitializeComponent();
            DataContext = ViewModel = new NewEnquiryViewModel(enquiryModel);

            ViewModel.PropertyChanged += ViewModelOnPropertyChanged;

            Owner = Application.Current.MainWindow;
            Loaded += OnNewEnquiryViewLoaded;
        }
Esempio n. 5
0
        private void AddNoteCommandExecuted()
        {
            RaisePropertyChanged("DisableParentWindow");
            _originalEnquiryAfterNotes = Enquiry.Clone();
            var window = new AddNoteView(Enquiry);

            window.ShowDialog();

            RaisePropertyChanged("EnableParentWindow");
        }
Esempio n. 6
0
        public NewEnquiryView(EnquiryModel enquiryModel = null)
        {
            InitializeComponent();
            DataContext = ViewModel = new NewEnquiryViewModel(enquiryModel);

            ViewModel.PropertyChanged += ViewModelOnPropertyChanged;

            Owner   = Application.Current.MainWindow;
            Loaded += OnNewEnquiryViewLoaded;
        }
        public IHttpActionResult Put(string EnquiryId, [FromBody] EnquiryModel model)
        {
            List <EnquiryModel> newlist  = (List <EnquiryModel>)list;
            EnquiryModel        newmodel = list.SingleOrDefault(c => c.EnquiryId.Equals(model.EnquiryId));

            newlist.Remove(newmodel);
            model.EnquiryId = EnquiryId;
            newlist.Add(model);
            list = newlist;
            return((IHttpActionResult)this.Ok(list.Where(c => c.EnquiryId.Equals(model.EnquiryId))));
        }
Esempio n. 8
0
        public SendEnquiryMailView(EnquiryModel model, CorrespondenceModel correspondence = null)
        {
            InitializeComponent();
            DataContext = ViewModel = new SendEnquiryMailViewModel(model, correspondence);

            Owner = Application.Current.MainWindow;

            ViewModel.PropertyChanged += ViewModelOnPropertyChanged;

            Loaded += OnSendEnquiryViewLoaded;
        }
Esempio n. 9
0
        public SendEnquiryMailView(EnquiryModel model, CorrespondenceModel correspondence = null)
        {
            InitializeComponent();
            DataContext = ViewModel = new SendEnquiryMailViewModel(model, correspondence);

            Owner = Application.Current.MainWindow;

            ViewModel.PropertyChanged += ViewModelOnPropertyChanged;

            Loaded += OnSendEnquiryViewLoaded;
        }
Esempio n. 10
0
        public EnquiryModel GetEnquiryModel()
        {
            EnquiryModel model = new EnquiryModel
            {
                TenderId             = 1,
                CommericalRegisterNo = "123",
                EnquiryName          = "Enquiry Name"
            };

            return(model);
        }
Esempio n. 11
0
        public AddActivityView(EnquiryModel enquiryModel, ActivityModel activity = null)
        {
            InitializeComponent();
            DataContext = ViewModel = new AddActivityViewModel(enquiryModel, activity);

            ViewModel.PropertyChanged += ViewModelOnPropertyChanged;

            Owner = Application.Current.MainWindow;

            Loaded += OnAddActivityViewLoaded;
        }
Esempio n. 12
0
        public AddEnquiryNoteViewModel(EnquiryModel enquiryModel, EnquiryNoteModel noteModel)
        {
            _enquiry = enquiryModel;
            var dataUnitLocator = ContainerAccessor.Instance.GetContainer().Resolve<IDataUnitLocator>();
            _crmDataUnit = dataUnitLocator.ResolveDataUnit<ICrmDataUnit>();

            SubmitCommand = new RelayCommand(SubmitCommandExecuted, SubmitCommandCanExecute);
            CancelCommand = new RelayCommand(CancelCommandExecuted);

            ProcessNote(noteModel);
        }
Esempio n. 13
0
        public AddActivityView(EnquiryModel enquiryModel, ActivityModel activity = null)
        {
            InitializeComponent();
            DataContext = ViewModel = new AddActivityViewModel(enquiryModel, activity);

            ViewModel.PropertyChanged += ViewModelOnPropertyChanged;

            Owner = Application.Current.MainWindow;

            Loaded += OnAddActivityViewLoaded;
        }
Esempio n. 14
0
        public async Task <EnquiryModel> SendEnquiry([FromBody] EnquiryModel enquiryModel)
        {
            string cr         = User.SupplierNumber();
            int    userIdFlag = User.UserId();

            enquiryModel.CommericalRegisterNo = cr;
            var result = await _enquiryAppService.SendEnquiry(enquiryModel);

            var model = _mapper.Map <EnquiryModel>(result, opt => { opt.Items["statusFlag"] = true; opt.Items[nameof(userIdFlag)] = userIdFlag; });

            return(model);
        }
Esempio n. 15
0
        public AddEnquiryNoteViewModel(EnquiryModel enquiryModel, EnquiryNoteModel noteModel)
        {
            _enquiry = enquiryModel;
            var dataUnitLocator = ContainerAccessor.Instance.GetContainer().Resolve <IDataUnitLocator>();

            _crmDataUnit = dataUnitLocator.ResolveDataUnit <ICrmDataUnit>();

            SubmitCommand = new RelayCommand(SubmitCommandExecuted, SubmitCommandCanExecute);
            CancelCommand = new RelayCommand(CancelCommandExecuted);

            ProcessNote(noteModel);
        }
Esempio n. 16
0
        public SendEnquiryMailViewModel(EnquiryModel enquiryModel, CorrespondenceModel mail)
        {
            _enquiry = enquiryModel;

            var dataUnitLocator = ContainerAccessor.Instance.GetContainer().Resolve <IDataUnitLocator>();

            _crmDataUnit = dataUnitLocator.ResolveDataUnit <ICrmDataUnit>();

            SubmitCommand = new RelayCommand(SubmitCommandExecuted, SubmitCommandCanExecute);
            CancelCommand = new RelayCommand(CancelCommandExecuted);

            ProcessMail(mail);
        }
        // GET: Enquire/Delete/5
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            EnquiryModel enquiryModel = db.Enquiries.Find(id);

            if (enquiryModel == null)
            {
                return(HttpNotFound());
            }
            return(View(enquiryModel));
        }
Esempio n. 18
0
        private EnquiryModel GetEnquiryAndFollowUpAsList(DataSet ds, bool showTime)
        {
            EnquiryModel obj       = new EnquiryModel();
            DataTable    dtEnquiry = new DataTable();

            if (ds != null && ds.Tables.Count > 0)
            {
                dtEnquiry = ds.Tables[0];

                if (dtEnquiry != null && dtEnquiry.Rows.Count > 0)
                {
                    obj.EnquiryId        = Convert.ToInt32(dtEnquiry.Rows[0]["EnquiryId"]);
                    obj.Name             = dtEnquiry.Rows[0]["Name"].ToString();
                    obj.Phone            = dtEnquiry.Rows[0]["Phone"].ToString();
                    obj.EnquiryDate      = Convert.ToDateTime(dtEnquiry.Rows[0]["DateAdded"]).ToString("dd/MM/yyyy");
                    obj.Address          = dtEnquiry.Rows[0]["Address"].ToString();
                    obj.Response         = dtEnquiry.Rows[0]["Response"].ToString();
                    obj.Comments         = dtEnquiry.Rows[0]["Comments"].ToString();
                    obj.Email            = dtEnquiry.Rows[0]["Email"].ToString();
                    obj.CourseId         = Convert.ToInt32(dtEnquiry.Rows[0]["CourseId"]);
                    obj.CourseName       = dtEnquiry.Rows[0]["CourseName"].ToString();
                    obj.NextFollowUpDate = Convert.ToDateTime(dtEnquiry.Rows[0]["NextFollowUpDate"]).ToString("dd/MM/yyyy");
                }

                DataTable dtFollowUp = new DataTable();
                if (ds.Tables.Count > 1)
                {
                    List <FollowUpModel> followUps = new List <FollowUpModel>();
                    obj.FollowUps = new List <FollowUpModel>();
                    dtFollowUp    = ds.Tables[1];
                    if (dtFollowUp.Rows.Count > 0)
                    {
                        for (int i = 0; i < dtFollowUp.Rows.Count; i++)
                        {
                            FollowUpModel objFollow = new FollowUpModel();
                            objFollow.Comments = dtFollowUp.Rows[i]["Comment"].ToString();
                            //objFollow.FollowUpBy = dtFollowUp.Rows[i]["StaffName"].ToString();

                            objFollow.DateAdded        = Convert.ToDateTime(dtFollowUp.Rows[i]["DateAdded"]).ToString("dd/MM/yyyy");
                            objFollow.NextFollowUpDate = Convert.ToDateTime(dtFollowUp.Rows[i]["NextFollowUp"]).ToString("dd/MM/yyyy");
                            objFollow.Response         = dtFollowUp.Rows[i]["Response"].ToString();
                            followUps.Add(objFollow);
                        }
                    }
                    obj.FollowUps = followUps;
                }
            }

            return(obj);
        }
Esempio n. 19
0
        public async Task <EnquiryModel> SaveAsync(EnquiryModel entity)
        {
            try
            {
                var enquiry = await _enquiryDataAccess.SaveAsync(Mapper.Map <Enquiry>(entity));

                return(new EnquiryModel {
                    Enquiry_ID = enquiry.Enquiry_ID
                });
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Esempio n. 20
0
        public ActionResult AddEdit(EnquiryModel model)
        {
            bool status = EnquiryService.AddEnquiry(model);

            if (status)
            {
                TempData["Success"] = "Enquiry Added Successfully.";
            }
            else
            {
                TempData["Error"] = "Error, Please Try Again.";
            }

            return(RedirectToAction("Index"));
        }
Esempio n. 21
0
        public AddFollowUpViewModel(EnquiryModel enquiryModel, bool addToActivity, FollowUpModel followUpModel)
        {
            _enquiry = enquiryModel;

            _addToActivity = addToActivity;
            IsFromCRM      = false;

            var dataUnitLocator = ContainerAccessor.Instance.GetContainer().Resolve <IDataUnitLocator>();

            _crmDataUnit = dataUnitLocator.ResolveDataUnit <ICrmDataUnit>();

            SubmitCommand = new RelayCommand(SubmitCommandExecuted, SubmitCommandCanExecute);
            CancelCommand = new RelayCommand(CancelCommandExecuted);

            ProcessFollowUp(followUpModel);
        }
Esempio n. 22
0
        public List <EnquiryModel> GetEnq()
        {
            List <EnquiryModel> mydict = new List <EnquiryModel>();
            var enquiryList            = _enquiryDataAccess.GetAll();

            foreach (var item in enquiryList)
            {
                EnquiryModel obj = new EnquiryModel {
                    Enquiry_ID = item.Enquiry_ID, EnquiryNo = item.EnquiryNo
                };
                mydict.Add(obj);
            }
            return(mydict);

            // add an item
        }
Esempio n. 23
0
        public async Task <IActionResult> UpdateEnquiry([FromBody] EnquiryModel enquiryModel)
        {
            try
            {
                enquiryModel.ModifiedBy   = "Admin";
                enquiryModel.ModifiedDate = DateTime.Now;

                db.Entry(enquiryModel).State = Microsoft.EntityFrameworkCore.EntityState.Modified;
                db.SaveChanges();
                return(Ok(enquiryModel));
            }
            catch (Exception ex)
            {
                return(BadRequest());
            }
        }
Esempio n. 24
0
        public async Task <ActionResult> JoinTechnicalCommittee(string enquiryIdString)
        {
            try
            {
                int enquiryId = Util.Decrypt(enquiryIdString);

                JoinTechnicalCommitteeModel joinTechnicalCommitteeModel = await _ApiClient.GetAsync <JoinTechnicalCommitteeModel>("Enquiry/GetJoinTechnicalCommitteeByEnquiryId/" + enquiryId, null);

                EnquiryModel enquiryModel = await _ApiClient.GetAsync <EnquiryModel>("Enquiry/GetEnquiryById/" + enquiryId, null);

                var technicalCommitteeList = await _ApiClient.GetListAsync <LookupModel>("Lookup/GetTechnicalCommitteeListOnBranchTender/" + enquiryModel.TenderId, null);

                if (joinTechnicalCommitteeModel.JoinTechnicalCommitteeId == 0)
                {
                    joinTechnicalCommitteeModel.EnquiryIdString    = enquiryIdString;
                    joinTechnicalCommitteeModel.EnquiryId          = enquiryId;
                    joinTechnicalCommitteeModel.TenderId           = enquiryModel.TenderId;
                    joinTechnicalCommitteeModel.EnquiryName        = enquiryModel.EnquiryName;
                    joinTechnicalCommitteeModel.EnquirySendingDate = enquiryModel.EnquirySendingDate;
                    joinTechnicalCommitteeModel.CommitteeList      = technicalCommitteeList;
                }
                else
                {
                    joinTechnicalCommitteeModel.CommitteeList      = technicalCommitteeList;
                    joinTechnicalCommitteeModel.EnquiryName        = enquiryModel.EnquiryName;
                    joinTechnicalCommitteeModel.TenderId           = enquiryModel.TenderId;
                    joinTechnicalCommitteeModel.EnquirySendingDate = enquiryModel.EnquirySendingDate;
                }
                return(View(joinTechnicalCommitteeModel));
            }
            catch (BusinessRuleException ex)
            {
                AddError(ex.Message);
                return(RedirectToAction(nameof(EnquiryDetails)));
            }
            catch (AuthorizationException ex)
            {
                throw ex;
            }
            catch (Exception ex)
            {
                _logger.LogError(ex.ToString(), ex);
                AddError(Resources.TenderResources.ErrorMessages.UnexpectedError);
                return(RedirectToAction(nameof(EnquiryDetails), new { enquiryIdString = enquiryIdString }));
            }
        }
Esempio n. 25
0
        public NewEnquiryViewModel(EnquiryModel enquiryModel)
        {
            var dataUnitLocator = ContainerAccessor.Instance.GetContainer().Resolve <IDataUnitLocator>();

            _crmDataUnit   = dataUnitLocator.ResolveDataUnit <ICrmDataUnit>();
            _eventDataUnit = dataUnitLocator.ResolveDataUnit <IEventDataUnit>();
            //_crmDataUnit.EnquiriesRepository.RevertAllChanges();
            ShowFindContactWindowCommand = new RelayCommand(ShowFindContactWindowCommandExecuted);
            ShowAddContactWindowCommand  = new RelayCommand(ShowAddContactWindowCommandExecuted);
            SubmitEventCommand           = new RelayCommand(SubmitEventCommandExecuted, SubmitEventCommandCanExecute);
            CancelEditingCommand         = new RelayCommand(CancelEditingCommandExecuted);
            EditPrimaryContactCommand    = new RelayCommand(EditPrimaryContactCommandExecuted, EditPrimaryContactCommandCanExecute);
            ShowResourcesCommand         = new RelayCommand(ShowResourcesCommandExecuted, ShowResourcesCommandCanExecute);
            BookCommand = new RelayCommand(BookCommandExecute, BookCommandCanExecute);

            ProcessEnquiry(enquiryModel);
        }
 public ActionResult Index(EnquiryModel Mod, IEnumerable <HttpPostedFileBase> files)
 {
     try
     {
         string str1   = DateTime.Now.ToString("yyyy-MM-dd");
         Member member = (Member)this.get_Session()["MemberDetails"];
         string str2   = string.Empty;
         if (!string.IsNullOrEmpty(Mod.Description))
         {
             str2 = Mod.Description;
         }
         string str3 = string.Empty;
         if (!string.IsNullOrEmpty(Mod.Comments))
         {
             str3 = Mod.Comments;
         }
         MailMessage message = new MailMessage();
         message.IsBodyHtml = true;
         List <string> stringList = new List <string>();
         SmtpClient    smtpClient = new SmtpClient("smtp.gmail.com");
         message.From = new MailAddress("*****@*****.**");
         string appSetting = ConfigurationManager.AppSettings["ReimbursementClaimID"];
         message.Subject = "Reimbursement Claims Submission";
         message.Body    = " Hello NGI team,<br><br> <b>Member Id: </b>" + member.Memberid + " <br> <b>Member Name: </b>" + member.FirstName + " " + member.LastName + "<br> <b>Email-ID:</b> " + member.EmailId + "<br> <b>Date:</b> " + str1 + " <br><br> Collect Reimbursement Claims Submission documents! ";
         message.To.Add(appSetting);
         foreach (HttpPostedFileBase file in files)
         {
             if (file != null && file.ContentLength > 0)
             {
                 string     fileName   = Path.GetFileName(file.FileName);
                 Attachment attachment = new Attachment(file.InputStream, fileName);
                 message.Attachments.Add(attachment);
             }
         }
         smtpClient.Port        = 587;
         smtpClient.Credentials = (ICredentialsByHost) new NetworkCredential("*****@*****.**", "@ngiadmin#");
         smtpClient.EnableSsl   = true;
         smtpClient.Send(message);
         ((ControllerBase)this).get_TempData().set_Item("ReimbursementResult", (object)"Reimbursement Claim Submission Submitted Successfully !");
     }
     catch (Exception ex)
     {
         ((ControllerBase)this).get_TempData().set_Item("ReimbursementResult", (object)"Error While submitting Reimbursement Claim Submission !");
     }
     return((ActionResult)this.RedirectToAction(nameof(Index)));
 }
Esempio n. 27
0
        /// <summary>
        /// This method is used for generate the auto numbers
        /// </summary>
        /// <param name="navigationId"></param>
        /// <returns></returns>
        public EnquiryModel GetAutoGeneraedNo(int navigationMenuCode)
        {
            string s = SchoolConfigNoGeneEnum.IsSystemGenerated.ToString();

            EnquiryModel enquiryModel  = new EnquiryModel();
            var          schoolConfigs = _SchoolConfigDataAccess.GetAll();

            schoolConfigs = schoolConfigs.Where(a => a.NavigationMenuCode == navigationMenuCode && a.configKey == "IsSystemGenerated" && a.configvalue == "True").ToList();
            foreach (var item in schoolConfigs)
            {
                var    numberschme  = _NumberGenSchemeDataAccess.GetAll().Where(a => a.SchoolConfig_Id == item.SchoolConfig_id).FirstOrDefault();
                string autogenNo    = genearateno(numberschme);
                string lastFragment = item.tablecolumn.Split('.').Last();

                var propertyInfo = enquiryModel.GetType().GetRuntimeProperty(lastFragment);
                propertyInfo.SetValue(enquiryModel, autogenNo, null);
            }
            return(enquiryModel);
        }
        // GET: Enquire/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            EnquiryModel enquiryModel = db.Enquiries.Find(id);

            if (enquiryModel == null)
            {
                return(HttpNotFound());
            }
            var currentUser = User.Identity.GetUserId();

            if (currentUser != enquiryModel.User.Id)
            {
                return(HttpNotFound());
            }
            return(View(enquiryModel));
        }
Esempio n. 29
0
        private void ProcessUpdates(EnquiryModel model, IEnumerable <string> diff)
        {
            diff.ForEach(difference =>
            {
                var update = new EnquiryUpdate()
                {
                    ID        = Guid.NewGuid(),
                    Date      = DateTime.Now,
                    EnquiryID = model.Enquiry.ID,
                    UserID    = AccessService.Current.User.ID,
                    Message   = difference
                };

                model.EnquiryUpdates.Add(update);
                _crmDataUnit.EnquiryUpdatesRepository.Add(update);
            });

            model.EnquiryUpdates = new ObservableCollection <EnquiryUpdate>(model.EnquiryUpdates.OrderByDescending(x => x.Date));
            //    _crmDataUnit.SaveChanges();
        }
Esempio n. 30
0
        public AddActivityViewModel(EnquiryModel enquiryModel, ActivityModel activityModel)
        {
            _enquiry = enquiryModel;

            var dataUnitLocator = ContainerAccessor.Instance.GetContainer().Resolve <IDataUnitLocator>();

            _crmDataUnit = dataUnitLocator.ResolveDataUnit <ICrmDataUnit>();

            IsFromCRM                = false;
            CanDeleteFollowUp        = AccessService.Current.UserHasPermissions(Resources.PERMISSION_DELETE_FOLLOWUP_ALLOWED);
            CanEditEveryoneFollowUps = AccessService.Current.UserHasPermissions(Resources.PERMISSION_EDIT_EVERYONE_FOLLOWUP_ALLOWED);
            CanEditOwnFollowUps      = AccessService.Current.UserHasPermissions(Resources.PERMISSION_EDIT_OWN_FOLLOWUP_ALLOWED);

            SubmitCommand         = new RelayCommand(SubmitCommandExecuted, SubmitCommandCanExecute);
            CancelCommand         = new RelayCommand(CancelCommandExecuted);
            AddFollowUpCommand    = new RelayCommand(AddFollowUpCommandExecuted, AddFollowUpCommandCanExecute);
            EditFollowUpCommand   = new RelayCommand <FollowUpModel>(EditFollowUpCommandExecuted);
            DeleteFollowUpCommand = new RelayCommand <FollowUpModel>(DeleteFollowUpCommandExecuted);

            ProcessActivity(activityModel);
        }
Esempio n. 31
0
        private async void OpenEventCommandExecute(EventEnquiryModel model)
        {
            RaisePropertyChanged("DisableParentWindow");

            if (model.Event != null)
            {
                var window = new EventDetailsView(model.Event);
                window.ShowDialog();
            }
            else
            {
                var enquiries = await _crmDataUnit.EnquiriesRepository.GetLightEnquiriesAsync(x => x.ID == model.Enquiry.Enquiry.ID);

                var enquiryModel = new EnquiryModel(enquiries.FirstOrDefault());

                var window = new NewEnquiryView(enquiryModel);
                window.ShowDialog();
            }

            RaisePropertyChanged("EnableParentWindow");
        }
        public ActionResult Create(int?id, [Bind(Include = "Id,Body,DateSent")] EnquiryModel enquiryModel)
        {
            if (ModelState.IsValid)
            {
                enquiryModel.Property = db.Properties.Find(id);

                string          userId      = User.Identity.GetUserId();
                ApplicationUser currentUser = db.Users.FirstOrDefault(x => x.Id == userId);
                enquiryModel.User = currentUser;

                db.Enquiries.Add(enquiryModel);
                db.SaveChanges();

                TempData["Message"]    = "Thank you for your interest in this property.";
                TempData["SubMessage"] = "We will try to respond as soon as possible.";

                return(RedirectToAction("Info", "Account"));
            }

            return(View(enquiryModel));
        }
Esempio n. 33
0
        public async Task <ActionResult> EnquiryDetails(string enquiryIdString)
        {
            try
            {
                EnquiryModel enquiryModel = await _ApiClient.GetAsync <EnquiryModel>("Enquiry/GetEnquiryById/" + Util.Decrypt(enquiryIdString), null);

                return(View(enquiryModel));
            }
            catch (AuthorizationException ex)
            {
                throw ex;
            }
            catch (BusinessRuleException ex)
            {
                return(JsonErrorMessage(ex.Message));
            }
            catch (Exception ex)
            {
                _logger.LogError(ex.ToString(), ex);
                return(JsonErrorMessage(Resources.TenderResources.ErrorMessages.UnexpectedError));
            }
        }
Esempio n. 34
0
        public async Task <ActionResult> SendEnquiry(EnquiryModel enquiryObj)
        {
            try
            {
                var result = await _ApiClient.PostAsync <EnquiryModel>("Enquiry/SendEnquiry", null, enquiryObj);

                return(Json(result));
            }
            catch (AuthorizationException ex)
            {
                throw ex;
            }
            catch (BusinessRuleException ex)
            {
                return(JsonErrorMessage(ex.Message));
            }
            catch (Exception ex)
            {
                _logger.LogError(ex.ToString(), ex);
                return(JsonErrorMessage(Resources.TenderResources.ErrorMessages.UnexpectedError));
            }
        }
Esempio n. 35
0
        public async Task <Enquiry> SendEnquiry(EnquiryModel enquiryModel)
        {
            Enquiry enquiry = _mapper.Map <Enquiry>(enquiryModel);
            Tender  tender  = await _tenderAppService.FindTenderByTenderId(enquiry.TenderId);

            if (tender != null)
            {
                await _enquiryDomain.CheckCanAddEnquiry(tender, enquiry.CommericalRegisterNo);
            }

            #region
            NotificationArguments NotificationArgument = new NotificationArguments();
            NotificationArgument.BodyEmailArgs    = new object[] { "", tender?.TenderName, tender?.ReferenceNumber, enquiryModel.EnquiryName };
            NotificationArgument.SubjectEmailArgs = new object[] { };
            NotificationArgument.PanelArgs        = new object[] { tender?.ReferenceNumber };
            NotificationArgument.SMSArgs          = new object[] { tender?.ReferenceNumber };
            #endregion

            MainNotificationTemplateModel mainNotificationTemplateModel;
            if (tender != null)
            {
                mainNotificationTemplateModel = new MainNotificationTemplateModel(NotificationArgument,
                                                                                  $"Enquiry/SupplierEnquiriesOnTender?id={Util.Encrypt(tender.TenderId)}",
                                                                                  NotificationEntityType.Tender,
                                                                                  tender.TenderId.ToString(),
                                                                                  tender.TechnicalOrganizationId);

                await _notificationAppService.SendNotificationForCommitteeUsers(NotificationOperations.TechnicalCommitteeSecretary.InquiriesAboutTender.vendoraskquestion, tender?.TechnicalOrganizationId, mainNotificationTemplateModel);

                tender.AddActionHistory(tender.TenderStatusId, TenderActions.AskQuestion, "", _httpContextAccessor.HttpContext.User.UserId());

                var request = new AgencyCommunicationRequest(tender.TenderId, (int)Enums.AgencyCommunicationRequestType.Enquiry, (int)Enums.AgencyCommunicationRequestStatus.PendingEnquiryForReply, RoleNames.supplier);
                tender.AddAgencyCommunicationRequest(request);
                enquiry.SetCommunicationRequest(request);
            }
            return(await _enquiryCommands.CreateAsync(enquiry));
        }
Esempio n. 36
0
        public SendEnquiryMailViewModel(EnquiryModel enquiryModel, CorrespondenceModel mail)
        {
            _enquiry = enquiryModel;

            var dataUnitLocator = ContainerAccessor.Instance.GetContainer().Resolve<IDataUnitLocator>();
            _crmDataUnit = dataUnitLocator.ResolveDataUnit<ICrmDataUnit>();

            SubmitCommand = new RelayCommand(SubmitCommandExecuted, SubmitCommandCanExecute);
            CancelCommand = new RelayCommand(CancelCommandExecuted);

            ProcessMail(mail);
        }
Esempio n. 37
0
        private async void LoadEnquiryData(EnquiryModel model)
        {
            // if (!model.FollowUps.Any())
            {
                if (_forceRefreshEnquiryData) _crmDataUnit.FollowUpsRepository.Refresh();
                var followUps = await _crmDataUnit.FollowUpsRepository.GetAllAsync(x => x.EnquiryID == model.Enquiry.ID);
                model.FollowUps = new ObservableCollection<FollowUpModel>(followUps.Select(x => new FollowUpModel(x)));
            }
            //if (!model.Activities.Any())
            {
                if (_forceRefreshEnquiryData) _crmDataUnit.ActivitiesRepository.Refresh();
                var activities = await _crmDataUnit.ActivitiesRepository.GetAllAsync(x => x.EnquiryID == model.Enquiry.ID);
                model.Activities = new ObservableCollection<ActivityModel>(activities.OrderByDescending(p => p.Date).Select(x => new ActivityModel(x)));
            }

            if (!model.EnquiryUpdates.Any())
            {
                var updates = await _crmDataUnit.EnquiryUpdatesRepository.GetAllAsync(x => x.EnquiryID == model.Enquiry.ID);
                model.EnquiryUpdates = new ObservableCollection<EnquiryUpdate>(updates.OrderByDescending(x => x.Date));
            }

            if (!model.EnquiryNotes.Any())
            {
                var notes = await _crmDataUnit.EnquiryNotesRepository.GetAllAsync(x => x.EnquiryID == model.Enquiry.ID);
                model.EnquiryNotes = new ObservableCollection<EnquiryNoteModel>(notes.Select(x => new EnquiryNoteModel(x)));
            }

            if (!model.Correspondences.Any())
            {
                if (_forceRefreshEnquiryData) _crmDataUnit.CorresponcencesRepository.Refresh();
                var correspondence = await _crmDataUnit.CorresponcencesRepository.GetAllAsync(x => x.OwnerID == model.Enquiry.ID);
                model.Correspondences = new ObservableCollection<CorrespondenceModel>(
                    correspondence.OrderByDescending(x => x.Date).Select(x => new CorrespondenceModel(x)));

                var documents = await _crmDataUnit.DocumentsRepository.GetAllAsync(x => x.IsCommon);

                foreach (var enquiryCorresponcence in model.Correspondences)
                {
                    foreach (var cd in enquiryCorresponcence.Correspondence.CorrespondenceDocuments)
                    {
                        enquiryCorresponcence.Documents.Add(documents.First(x => x.ID == cd.DocumentID));
                    }
                }
            }

            _originalEnquiry = model.Clone();

            //  IsBusy = false;
        }
Esempio n. 38
0
        public AddFollowUpViewModel(EnquiryModel enquiryModel, bool addToActivity, FollowUpModel followUpModel)
        {
            _enquiry = enquiryModel;

            _addToActivity = addToActivity;
            IsFromCRM = false;

            var dataUnitLocator = ContainerAccessor.Instance.GetContainer().Resolve<IDataUnitLocator>();
            _crmDataUnit = dataUnitLocator.ResolveDataUnit<ICrmDataUnit>();

            SubmitCommand = new RelayCommand(SubmitCommandExecuted, SubmitCommandCanExecute);
            CancelCommand = new RelayCommand(CancelCommandExecuted);

            ProcessFollowUp(followUpModel);
        }
Esempio n. 39
0
        public AddFollowUpViewModel(IEnumerable<EnquiryModel> enquiries, FollowUpModel followUpModel)
        {
            Enquiries = enquiries.OrderBy(x => x.EventType.Name).ThenByDescending(x => x.CreationDate).ToList();

            var dataUnitLocator = ContainerAccessor.Instance.GetContainer().Resolve<IDataUnitLocator>();
            _crmDataUnit = dataUnitLocator.ResolveDataUnit<ICrmDataUnit>();

            CanEditEveryoneFollowUps = AccessService.Current.UserHasPermissions(Resources.PERMISSION_EDIT_EVERYONE_FOLLOWUP_ALLOWED);
            CanEditOwnFollowUps = AccessService.Current.UserHasPermissions(Resources.PERMISSION_EDIT_OWN_FOLLOWUP_ALLOWED);
            IsFromCRM = true;

            SubmitCommand = new RelayCommand(SubmitCommandExecuted, SubmitCommandCanExecute);
            CancelCommand = new RelayCommand(CancelCommandExecuted);

            OpenEnquiryCommand = new RelayCommand(OpenEnquiryCommandExecute, OpenEnquiryCommandCanExecute);

            if (followUpModel != null)
            {
                ProcessFollowUp(followUpModel);
                SelectedEnquiry = Enquiries.FirstOrDefault(x => x.Enquiry == followUpModel.FollowUp.Enquiry);
                _originalEnquiry = SelectedEnquiry.Clone();
            }
            else
            {
                FollowUp = GetFollowUpWithoutEnquiry();
                FollowUp.PropertyChanged += FollowUpOnPropertyChanged;
            }

        }
Esempio n. 40
0
        private void ProcessUpdates(EnquiryModel model, IEnumerable<string> diff)
        {
            diff.ForEach(difference =>
            {
                var update = new EnquiryUpdate()
                {
                    ID = Guid.NewGuid(),
                    Date = DateTime.Now,
                    EnquiryID = model.Enquiry.ID,
                    UserID = AccessService.Current.User.ID,
                    Message = difference
                };

                model.EnquiryUpdates.Add(update);
                _crmDataUnit.EnquiryUpdatesRepository.Add(update);
            });

            model.EnquiryUpdates = new ObservableCollection<EnquiryUpdate>(model.EnquiryUpdates.OrderByDescending(x => x.Date));

            //    _crmDataUnit.SaveChanges();
        }
Esempio n. 41
0
        public NewEnquiryViewModel(EnquiryModel enquiryModel)
        {
            var dataUnitLocator = ContainerAccessor.Instance.GetContainer().Resolve<IDataUnitLocator>();
            _crmDataUnit = dataUnitLocator.ResolveDataUnit<ICrmDataUnit>();
            _eventDataUnit = dataUnitLocator.ResolveDataUnit<IEventDataUnit>();
            //_crmDataUnit.EnquiriesRepository.RevertAllChanges();
            ShowFindContactWindowCommand = new RelayCommand(ShowFindContactWindowCommandExecuted);
            ShowAddContactWindowCommand = new RelayCommand(ShowAddContactWindowCommandExecuted);
            SubmitEventCommand = new RelayCommand(SubmitEventCommandExecuted, SubmitEventCommandCanExecute);
            CancelEditingCommand = new RelayCommand(CancelEditingCommandExecuted);
            EditPrimaryContactCommand = new RelayCommand(EditPrimaryContactCommandExecuted, EditPrimaryContactCommandCanExecute);
            ShowResourcesCommand = new RelayCommand(ShowResourcesCommandExecuted, ShowResourcesCommandCanExecute);
            BookCommand = new RelayCommand(BookCommandExecute, BookCommandCanExecute);

            ProcessEnquiry(enquiryModel);
        }
Esempio n. 42
0
        public AddActivityViewModel(EnquiryModel enquiryModel, ActivityModel activityModel)
        {
            _enquiry = enquiryModel;

            var dataUnitLocator = ContainerAccessor.Instance.GetContainer().Resolve<IDataUnitLocator>();
            _crmDataUnit = dataUnitLocator.ResolveDataUnit<ICrmDataUnit>();

            IsFromCRM = false;
            CanDeleteFollowUp = AccessService.Current.UserHasPermissions(Resources.PERMISSION_DELETE_FOLLOWUP_ALLOWED);
            CanEditEveryoneFollowUps = AccessService.Current.UserHasPermissions(Resources.PERMISSION_EDIT_EVERYONE_FOLLOWUP_ALLOWED);
            CanEditOwnFollowUps = AccessService.Current.UserHasPermissions(Resources.PERMISSION_EDIT_OWN_FOLLOWUP_ALLOWED);

            SubmitCommand = new RelayCommand(SubmitCommandExecuted, SubmitCommandCanExecute);
            CancelCommand = new RelayCommand(CancelCommandExecuted);
            AddFollowUpCommand = new RelayCommand(AddFollowUpCommandExecuted, AddFollowUpCommandCanExecute);
            EditFollowUpCommand = new RelayCommand<FollowUpModel>(EditFollowUpCommandExecuted);
            DeleteFollowUpCommand = new RelayCommand<FollowUpModel>(DeleteFollowUpCommandExecuted);

            ProcessActivity(activityModel);
        }
Esempio n. 43
0
 public async Task DeleteAsync(EnquiryModel entity)
 {
     await _enquiryDataAccess.DeleteAsync(entity.Enquiry_ID);
 }
Esempio n. 44
0
        private void EditEnquiryCommandExecute(EnquiryModel item)
        {

            RaisePropertyChanged("DisableParentWindow");
            var currentEnquiry = item.Clone();
            item.Refresh();
            var window = new NewEnquiryView(item);
            window.ShowDialog();
            RaisePropertyChanged("EnableParentWindow");
            if (window.DialogResult == null || window.DialogResult != true)
            {
                item.Refresh();
                return;
            }
            item.Refresh();
            var viewModel = window.DataContext as NewEnquiryViewModel;
            bool activityChanged = viewModel.ActivityChanged;
            bool followUpsChanged = viewModel.FoolowUpsChanged;

            //  var diff = LoggingService.FindDifference(currentEnquiry, item, out activityChanged, out followUpsChanged);
            //  ProcessUpdates(item, diff);

            if (activityChanged)
            {
                _allActivities.RemoveAll(x => x.Activity.EnquiryID == item.Enquiry.ID);

                foreach (var activity in window.ViewModel.Enquiry.Activities)
                {
                    _allActivities.Add(activity);
                }
                Activities = new ObservableCollection<ActivityModel>(_allActivities);
            }
            else
            {
                Activities.ForEach(x => x.Refresh());
            }
            if (followUpsChanged)
            {
                _allFollowUps.RemoveAll(
                    x => x.FollowUp.EnquiryID != null && (Guid)x.FollowUp.EnquiryID == item.Enquiry.ID);

                _allFollowUps.RemoveAll(x => x.TakenByUser == null);

                foreach (var followUp in window.ViewModel.Enquiry.FollowUps)
                {
                    SetFollowUpPriority(followUp);
                    _allFollowUps.Add(followUp);
                }

                FollowUps = new ObservableCollection<FollowUpModel>(_allFollowUps);
            }
            else
            {
                FollowUps.ForEach(x => x.Refresh());
            }
        }
Esempio n. 45
0
        private async void SubmitCommandExecuted()
        {
            if (!_isEditMode)
            {
                FollowUp.TakenByUser = TakenByUser;
                FollowUp.AssignedToUser = AssignedToUser;
                if (AreEnquiriesVisible)
                {
                    FollowUp.FollowUp.Enquiry = SelectedEnquiry.Enquiry;

                }
                else if (!_isToDo)
                {
                    _enquiry.FollowUps.Add(FollowUp);
                }

                _crmDataUnit.FollowUpsRepository.Add(FollowUp.FollowUp);

                if (!_isToDo)
                {
                    var primaryContact = FollowUp.FollowUp.Enquiry != null ? FollowUp.FollowUp.Enquiry.Contact == null ? String.Empty : "Primary Contact: " + FollowUp.FollowUp.Enquiry.Contact.FirstName + " "
                        + FollowUp.FollowUp.Enquiry.Contact.LastName : String.Empty;

                    var msg = "Follow-Up" + "\n" + "Created by " + FollowUp.TakenByUser.FirstName + " " +
                              FollowUp.TakenByUser.LastName + " at " + DateTime.Now + "\n" +
                              "Event Name: " + FollowUp.EnquiryName + "\n" + primaryContact + "\n" + FollowUp.WhatToDo;
                    var email = new CorrespondenceModel(new Corresponcence()
                    {
                        ID = Guid.NewGuid(),
                        Date = DateTime.Now,
                        FromAddress = FollowUp.TakenByUser.EmailAddress,
                        ToAddress = FollowUp.AssignedToUser.EmailAddress,
                        Subject = "Follow-Up",
                        Message = msg,
                    });

                    await EmailService.SendEmail(email,null,null);
                    if (AreEnquiriesVisible)
                    {
                        _originalEnquiry = SelectedEnquiry.Clone();
                        _selectedEnquiry.FollowUps.Add(FollowUp);
                        var diff = LoggingService.FindDifference(_originalEnquiry, SelectedEnquiry, out ActivityChanged, out FoolowUpsChanged);
                        if (!SelectedEnquiry.EnquiryUpdates.Any())
                        {
                            var updates = await _crmDataUnit.EnquiryUpdatesRepository.GetAllAsync(x => x.EnquiryID == SelectedEnquiry.Enquiry.ID);
                            SelectedEnquiry.EnquiryUpdates = new ObservableCollection<EnquiryUpdate>(updates.OrderByDescending(x => x.Date));
                        }

                        ProcessUpdates(_selectedEnquiry, diff);
                        if (!_addToActivity)
                            await _crmDataUnit.SaveChanges();
                    }

                }
            }
            else
            {
                _followUp.AssignedToUser = AssignedToUser;
                _followUp.FollowUp.UserDueToDoID = AssignedToUser.ID;
                _followUp.FollowUp.LastEditDate = DateTime.Now;
                if (AreEnquiriesVisible)
                {
                    if (_originalEnquiry.Enquiry.ID != _selectedEnquiry.Enquiry.ID)
                    {

                        _originalEnquiry = _selectedEnquiry.Clone();
                    }

                    FollowUp.FollowUp.Enquiry = SelectedEnquiry.Enquiry;
                    SelectedEnquiry.FollowUps.Where(x => x.FollowUp == _followUp.FollowUp).FirstOrDefault().AssignedToUser = AssignedToUser;
                    var diff = LoggingService.FindDifference(_originalEnquiry, SelectedEnquiry, out ActivityChanged, out FoolowUpsChanged);
                    if (!SelectedEnquiry.EnquiryUpdates.Any())
                    {
                        var updates = await _crmDataUnit.EnquiryUpdatesRepository.GetAllAsync(x => x.EnquiryID == SelectedEnquiry.Enquiry.ID);
                        SelectedEnquiry.EnquiryUpdates = new ObservableCollection<EnquiryUpdate>(updates.OrderByDescending(x => x.Date));
                    }
                    ProcessUpdates(_selectedEnquiry, diff);

                    if (!_addToActivity)
                        await _crmDataUnit.SaveChanges();
                }
                else
                    _crmDataUnit.FollowUpsRepository.SetEntityModified(_followUp.FollowUp);
                FollowUp.Refresh();
            }
        }
Esempio n. 46
0
        public async Task <HttpResponseMessage> Save(EnquiryModel data)
        {
            try
            {
                #region For Add data into Application table
                List <ApplicationModel> applicationModelList = new List <ApplicationModel>();
                ApplicationModel        applicationModel     = new ApplicationModel()
                {
                    //Enquiry_ID = enquiry.Enquiry_ID,
                    ApplicaitonNo = data.ApplicaitonNo,
                    IsSubmitted   = false,
                    Sessionyear   = data.Sessionyear,
                    SchoolID      = data.SchoolID,
                    GroupID       = data.GroupID,
                    CreatedDate   = DateTime.Today
                };
                applicationModelList.Add(applicationModel);
                #endregion

                #region For Add data into CandidateDetail table
                List <CandidateDetailModel> candidateDetailList  = new List <CandidateDetailModel>();
                CandidateDetailModel        candidateDetailModel = new CandidateDetailModel()
                {
                    // Enquiry_ID = data.Enquiry_ID,
                    AdmissionClass_id = data.AdmissionClass_id,
                    FirstName         = data.FirstName,
                    MiddleName        = data.MiddleName,
                    Lastname          = data.Lastname,
                    DOB                 = data.DOB,
                    Email               = data.Email,
                    StudentType_ID      = data.StudentType_ID,
                    ContactMobileNo     = data.ContactMobileNo,
                    hasSibiling         = data.hasSibiling,
                    SiblingAdmNumber_ID = data.SiblingAdmNumber_ID,
                    Address1            = data.Address1,
                    Address2            = data.Address2,
                    City_ID             = data.City_ID,
                    State_ID            = data.State_ID,
                    Country_ID          = data.Country_ID,
                    FatheFirstName      = data.FatheFirstName,
                    FatherMiddleName    = data.FatherMiddleName,
                    FatherLasttName     = data.FatherLasttName,
                    MotherFirstName     = data.MotherFirstName,
                    MotherMiddleName    = data.MotherMiddleName,
                    MotherLasttName     = data.MotherLasttName,
                    Sessionyear         = data.Sessionyear,
                    SchoolID            = data.SchoolID,
                    GroupID             = data.GroupID,
                    SubjectId           = data.SubjectId,
                    CreatedDate         = DateTime.Today
                };
                candidateDetailList.Add(candidateDetailModel);

                EnquiryModel enquiry = new EnquiryModel
                {
                    Applications     = applicationModelList,
                    CandidateDetails = candidateDetailList,
                    CreatedDate      = DateTime.Today,
                    Enquiry_ID       = 0,
                    MarketSource_ID  = data.MarketSource_ID,
                    EnquiryType_ID   = data.EnquiryType_ID,
                    EnquiryNo        = data.EnquiryNo
                };
                await _enquiry.SaveAsync(enquiry);

                #endregion
            }
            catch (Exception ex)
            {
                Common.MyLogger.Error(ex.Message + ex.StackTrace + ex.InnerException.ToString());
                return(Request.CreateResponse(HttpStatusCode.BadRequest, "Error"));
            }
            return(Request.CreateResponse(HttpStatusCode.OK, "Data Saved"));
        }
Esempio n. 47
0
        public async void LoadData()
        {
            IsBusy = true;

            var types = await _crmDataUnit.EventTypesRepository.GetAllAsync(x => x.AllowEnquiry);
            EventTypes = new ObservableCollection<EventType>(types.OrderBy(x => x.Name));

            var statuses = await _crmDataUnit.EventStatusesRepository.GetAllAsync();
            EventStatuses = new ObservableCollection<EventStatus>(statuses.OrderBy(x => x.Name));

            _eventNoteTypes = await _crmDataUnit.EventNoteTypesRepository.GetAllAsync();

            var enquiries = await _crmDataUnit.EnquiriesRepository.GetLightEnquiriesAsync();
            AlreadyCreatedEnquiries = new ObservableCollection<Enquiry>(enquiries);

            var users = await _crmDataUnit.UsersRepository.GetUsersAsync();
            Users = new ObservableCollection<User>(users);

            OnLoadCurrentUser();

            var campaigns = await _crmDataUnit.CampaignsRepository.GetAllAsync(x => x.IsActive);
            Campaigns = new ObservableCollection<Campaign>(campaigns);

            var enquiryStatuses = await _crmDataUnit.EnquiryStatusesRepository.GetAllAsync(x => x.IsEnabled);
            EnquiryStatuses = new ObservableCollection<EnquiryStatus>(enquiryStatuses.OrderBy(x => x.Status));

            var methods = await _crmDataUnit.EnquiryReceiveMethodsRepository.GetAllAsync();
            EnquiryReceivedMethods = new ObservableCollection<EnquiryReceiveMethod>(methods.OrderBy(x => x.ReceiveMethod));

            if (_isEditMode)
            {
                var desiredEnquiry = await _crmDataUnit.EnquiriesRepository.GetUpdatedEnquiry(_enquiry.Enquiry.ID);

                if (desiredEnquiry.LockedUserID != null && desiredEnquiry.LockedUserID != AccessService.Current.User.ID)
                {
                    // Okey, someone is editing event right now. 
                    var user = (await _crmDataUnit.UsersRepository.GetUsersAsync(x => x.ID == desiredEnquiry.LockedUserID)).FirstOrDefault();

                    IsLocked = true;
                    LockedText = string.Format("{0} is locked by {1} {2}. Please wait till user makes changes", _enquiry.Name, user.FirstName, user.LastName);
                    return;
                }

                // Lock event
                _enquiry.Enquiry.LockedUserID = AccessService.Current.User.ID;
                await _crmDataUnit.SaveChanges();

                // Check if we have new changes
                if (desiredEnquiry != null && desiredEnquiry.LastEditDate != null && Enquiry.LoadedTime < desiredEnquiry.LastEditDate)
                {
                    Enquiry = new EnquiryModel(desiredEnquiry);
                    _forceRefreshEnquiryData = true;
                }

                LoadEnquiryData(_enquiry);
                EventType = _enquiry.EventType;
                AssignedToUser = _enquiry.AssignedToUser;
                LoggedUser = _enquiry.LoggedUser;
                Campaign = _enquiry.Campaign;
                EnquiryStatus = _enquiry.EnquiryStatus;
                ReceivedMethod = _enquiry.ReceivedMethod;
            }
            else
            {
                SetEnquiryStatus();
            }

            IsBusy = false;
        }
Esempio n. 48
0
 public EventEnquiryModel(EnquiryModel model)
 {
     _enquiry = model;
 }
Esempio n. 49
0
        private async void OpenEventCommandExecute(EventEnquiryModel model)
        {
            RaisePropertyChanged("DisableParentWindow");

            if (model.Event != null)
            {
                var window = new EventDetailsView(model.Event);
                window.ShowDialog();
            }
            else
            {
                var enquiries = await _crmDataUnit.EnquiriesRepository.GetLightEnquiriesAsync(x => x.ID == model.Enquiry.Enquiry.ID);
                var enquiryModel = new EnquiryModel(enquiries.FirstOrDefault());

                var window = new NewEnquiryView(enquiryModel);
                window.ShowDialog();
            }

            RaisePropertyChanged("EnableParentWindow");

        }
Esempio n. 50
0
        public static IEnumerable<string> FindDifference(EnquiryModel currentEnquiry, EnquiryModel nextEnquiry, out bool activityChanged, out bool followUpsChanged)
        {
            var differences = new List<string>();

            activityChanged = false;
            followUpsChanged = false;

            try
            {
                // Name
                if (currentEnquiry.Name != nextEnquiry.Name)
                    differences.Add(string.Format("Edited: Name changed from {0} to {1}", currentEnquiry.Name, nextEnquiry.Name));

                // Date
                if (currentEnquiry.Date != nextEnquiry.Date)
                    differences.Add(string.Format("Edited: Date changed from {0} to {1}", currentEnquiry.Date, nextEnquiry.Date));

                // Places
                if (currentEnquiry.Places != nextEnquiry.Places)
                    differences.Add(string.Format("Edited: Number of people changed from {0} to {1}", currentEnquiry.Places, nextEnquiry.Places));

                // Type
                if (currentEnquiry.EventType.ID != nextEnquiry.EventType.ID)
                    differences.Add(string.Format("Edited: Type changed from {0} to {1}", currentEnquiry.EventType.Name, nextEnquiry.EventType.Name));

                // Status
                if (currentEnquiry.EventStatus.ID != nextEnquiry.EventStatus.ID)
                    differences.Add(string.Format("Edited: Status changed from {0} to {1}", currentEnquiry.EventStatus.Name, nextEnquiry.EventStatus.Name));

                // Contact
                if (currentEnquiry.PrimaryContact != null && currentEnquiry.PrimaryContact == null)
                    differences.Add(string.Format("Added: A new contact was associated with event"));
                else if (currentEnquiry.PrimaryContact == null && currentEnquiry.PrimaryContact != null)
                    differences.Add(string.Format("Removed: A primary contact was removed"));
                else if (nextEnquiry.PrimaryContact != null && currentEnquiry.PrimaryContact != null)
                    if (currentEnquiry.PrimaryContact.Contact.ID != nextEnquiry.PrimaryContact.Contact.ID)
                        differences.Add(string.Format("Edited: Primary contact changed from {0} to {1}", currentEnquiry.PrimaryContact.Contact.FirstName, nextEnquiry.PrimaryContact.Contact.FirstName));

                //Enquiry Detail Assigned To User
                if (currentEnquiry.AssignedToUser.ID != nextEnquiry.AssignedToUser.ID)
                    differences.Add(string.Format("Edited: Assigned To User changed from {0} to {1}", currentEnquiry.AssignedToUser.FirstName, nextEnquiry.AssignedToUser.FirstName));

                //Enquiry Detail EnquiryStatus
                if (currentEnquiry.EnquiryStatus.ID != nextEnquiry.EnquiryStatus.ID)
                    differences.Add(string.Format("Edited: Enquiry Status changed from {0} to {1}", currentEnquiry.EnquiryStatus.Status, nextEnquiry.EnquiryStatus.Status));

                //Enquiry Detail ReceivedMethod
                if (currentEnquiry.ReceivedMethod.ID != nextEnquiry.ReceivedMethod.ID)
                    differences.Add(string.Format("Edited: ReceivedMethod changed from {0} to {1}", currentEnquiry.ReceivedMethod.ReceiveMethod, nextEnquiry.ReceivedMethod.ReceiveMethod));

                //Enquiry Detail Value
                if (currentEnquiry.Value != nextEnquiry.Value)
                    differences.Add(string.Format("Edited: Value changed from {0} to {1}", currentEnquiry.Value, nextEnquiry.Value));

                //Enquiry Detail Likelihood
                if (currentEnquiry.Likelihood != nextEnquiry.Likelihood)
                    differences.Add(string.Format("Edited: Likelihood changed from {0} to {1}", currentEnquiry.Likelihood, nextEnquiry.Likelihood));

                //Enquiry Detail Campaign
                if (nextEnquiry.Campaign != null)
                {
                    if (currentEnquiry.Campaign != null && currentEnquiry.Campaign.ID != nextEnquiry.Campaign.ID)
                        differences.Add(string.Format("Edited: Campaign changed from {0} to {1}", currentEnquiry.Campaign.Name, nextEnquiry.Campaign.Name));
                    else if (currentEnquiry.Campaign == null)
                    {
                        differences.Add(string.Format("Edited: Campaign changed to {0}", nextEnquiry.Campaign.Name));
                    }
                }


                // Activities
                if (currentEnquiry.Activities.Count != nextEnquiry.Activities.Count)
                {
                    activityChanged = true;
                    if (nextEnquiry.Activities.Count > currentEnquiry.Activities.Count)
                    {
                        var addedActivities = nextEnquiry.Activities.Except(currentEnquiry.Activities, new EnquiryActivityComparer()).ToList();
                        differences.AddRange(addedActivities.Select(activityModel => string.Format("Added: Activity {0}", activityModel.Details)));
                    }
                    else
                    {
                        var removedActivities = currentEnquiry.Activities.Except(nextEnquiry.Activities, new EnquiryActivityComparer()).ToList();
                        differences.AddRange(removedActivities.Select(activityModel => string.Format("Removed: Event charge {0}", activityModel.Details)));
                    }
                }

                foreach (var newActivity in nextEnquiry.Activities)
                {
                    var currentActivity = currentEnquiry.Activities.FirstOrDefault(x => x.Activity.ID == newActivity.Activity.ID);

                    if (currentActivity == null) continue;

                    if (currentActivity.ActivityType.ID != newActivity.ActivityType.ID)
                        differences.Add(string.Format("Edited: Activity Type changed from {0} to {1}", currentActivity.ActivityType.Name, newActivity.ActivityType.Name));

                    if (currentActivity.Details != newActivity.Details)
                        differences.Add(string.Format("Edited: Activity Details changed from {0} to {1}", currentActivity.Activity.Details, newActivity.Activity.Details));

                    if (currentActivity.Direction != newActivity.Direction)
                        differences.Add(string.Format("Edited: Activity Direction changed from {0} to {1}", currentActivity.Direction, newActivity.Direction));

                    if (currentActivity.Length != newActivity.Length)
                        differences.Add(string.Format("Edited: Activity Length changed from {0} to {1}", currentActivity.Length, newActivity.Length));
                }

                // Notes
                if (currentEnquiry.EnquiryNotes.Count != nextEnquiry.EnquiryNotes.Count)
                {
                    if (nextEnquiry.EnquiryNotes.Count > currentEnquiry.EnquiryNotes.Count)
                    {
                        var addedNotes = nextEnquiry.EnquiryNotes.Except(currentEnquiry.EnquiryNotes, new EnquiryNoteComparer()).ToList();
                        differences.AddRange(addedNotes.Select(enquiryNote => string.Format("Added: Enquiry note {0}", enquiryNote.Note)));
                    }
                    else
                    {
                        var removedNotes = currentEnquiry.EnquiryNotes.Except(nextEnquiry.EnquiryNotes, new EnquiryNoteComparer()).ToList();
                        differences.AddRange(removedNotes.Select(enquiryNote => string.Format("Removed: Enquiry note {0}", enquiryNote.Note)));
                    }
                }

                foreach (var newNote in nextEnquiry.EnquiryNotes)
                {
                    var currentNote = currentEnquiry.EnquiryNotes.FirstOrDefault(x => x.EnquiryNote.ID == newNote.EnquiryNote.ID);

                    if (currentNote == null) continue;

                    if (currentNote.Note != newNote.Note)
                        differences.Add(string.Format("Edited: Note was changed from {0} to {1}", currentNote.Note, newNote.Note));

                }

                // FollowUps
                var addedFollowUps = nextEnquiry.FollowUps.Except(currentEnquiry.FollowUps, new EnquiryFollowUpComparer()).ToList();
                if (addedFollowUps.Any())
                {
                    followUpsChanged = true;
                    differences.AddRange(addedFollowUps.Select(enquiryFollowUp => string.Format("Added: Follow-Up {0}", enquiryFollowUp.WhatToDo)));
                }

                var removedFollowUps = currentEnquiry.FollowUps.Except(nextEnquiry.FollowUps, new EnquiryFollowUpComparer()).ToList();
                if (removedFollowUps.Any())
                {
                    followUpsChanged = true;
                    differences.AddRange(removedFollowUps.Select(enquiryFollowUp => string.Format("Removed: Follow-Up {0}", enquiryFollowUp.WhatToDo)));
                }

                foreach (var newFollowUp in nextEnquiry.FollowUps)
                {
                    var currentFollowUp = currentEnquiry.FollowUps.FirstOrDefault(x => x.FollowUp.ID == newFollowUp.FollowUp.ID);

                    if (currentFollowUp == null) continue;

                    if (newFollowUp.AssignedToUser == null) continue;

                    if (currentFollowUp.DateDue != newFollowUp.DateDue)
                        differences.Add(string.Format("Edited: Follow-Up date due was changed from {0} to {1}", currentFollowUp.DateDue.ToString("d"), newFollowUp.DateDue.ToString("d")));

                    if (currentFollowUp.WhatToDo != newFollowUp.WhatToDo)
                        differences.Add(string.Format("Edited: Follow-Up WhatToDo was changed from {0} to {1}", currentFollowUp.WhatToDo, newFollowUp.WhatToDo));

                    if (currentFollowUp.AssignedToUser.ID != newFollowUp.AssignedToUser.ID)
                        differences.Add(string.Format("Edited: Follow-Up Assigned To User was changed from {0} {1} to {2} {3}", currentFollowUp.AssignedToUser.FirstName, currentFollowUp.AssignedToUser.LastName, newFollowUp.AssignedToUser.FirstName, newFollowUp.AssignedToUser.LastName));

                }

            }
            catch (Exception ex)
            {
                //                throw ex;
            }

            return differences;
        }
Esempio n. 51
0
        private void ProcessEnquiry(EnquiryModel enquiryModel)
        {
            _isEditMode = (enquiryModel != null);

            Enquiry = enquiryModel ?? GetNewEnquiry();
            Enquiry.PropertyChanged += OnEnquiryPropertyChanged;
        }