public ActionResult Update(CRMLead crmLead) { ApiResult <CRMLead> apiResult; if (ModelState.IsValid) { if (crmLead.Id > 0) { apiResult = TryExecute(() => { _crmLeadRepository.Update(crmLead); _unitOfWork.Commit(); return(crmLead); }, "Lead updated sucessfully"); } else { apiResult = TryExecute(() => { _crmLeadRepository.Create(crmLead); _unitOfWork.Commit(); return(crmLead); }, "Lead created sucessfully"); } } else { apiResult = ApiResultFromModelErrors <CRMLead>(); } return(Json(apiResult, JsonRequestBehavior.AllowGet)); }
//protected override void OnAppearing() //{ // base.OnAppearing(); // MessagingCenter.Subscribe<Dictionary<string,dynamic>, string>(vals, "NotifyMsg", (sender, arg) => // { // string retarg = arg; // List<CRMLead> crmLeadData = Controller.InstanceCreation().crmLeadData(); // }); //} async void phoneClicked(object sender, EventArgs e1) { var args = (TappedEventArgs)e1; try { CRMLead myobj = args.Parameter as CRMLead; var phoneDialer = CrossMessaging.Current.PhoneDialer; if (phoneDialer.CanMakePhoneCall && myobj.phone != "") { phoneDialer.MakePhoneCall(myobj.phone); } else { await Navigation.PushPopupAsync(new PhoneWizard()); } } catch { CRMLeadDB myobj = args.Parameter as CRMLeadDB; var phoneDialer = CrossMessaging.Current.PhoneDialer; if (phoneDialer.CanMakePhoneCall && myobj.phone != "") { phoneDialer.MakePhoneCall(myobj.phone); } else { await Navigation.PushPopupAsync(new PhoneWizard()); } } }
public ActionResult Create(NewCRMLeadViewModel vm) { if (ModelState.IsValid) { try { var newCRMLead = new CRMLead { AssignedToUserId = vm.AssignedToUserId, LeadSourceId = vm.LeadSourceId, CategoryId = vm.CategoryId, LeadStatusId = vm.LeadStatusId, Person = vm.Person, Expertise = vm.Expertise, Description = vm.Description, RecievedOn = vm.RecievedOn, CreatedByUserId = WebUser.Id }; _crmLeadRepository.Create(newCRMLead); _unitOfWork.Commit(); // Map the Technologies if (vm.TechnologyIds != null) { foreach (var technologyId in vm.TechnologyIds) { var newMap = new CRMLeadTechnologyMap { LeadId = newCRMLead.Id, TechnologyId = technologyId }; _crmLeadTechnologyMapRepository.Create(newMap); } _unitOfWork.Commit(); } return(RedirectToAction("Index")); } catch (Exception ex) { ModelState.AddModelError(string.Empty, ex.Message); } } else { ModelState.AddModelError(string.Empty, "Please fill all mandatory fields"); } return(View(vm)); }
private string GetCRMLeadDetails(CRMLead crmLead) { var builder = new StringBuilder(); builder.Append("<p>Already a Lead exists with the same details</p>"); builder.Append($"<p>Name is: {crmLead.Person.Name}</p>"); builder.Append($"<p>Email is: {crmLead.Person.Email}</p>"); builder.Append($"<p>Secondary Email is: {crmLead.Person.SecondaryEmail}</p>"); builder.Append($"<p>Phone No is: {crmLead.Person.PhoneNo}</p>"); builder.Append($"<p>Office Phone No is: {crmLead.Person.OfficePhone}</p>"); builder.Append($"<a target='_blank' href='/CRM/CRMLeads/Details/{crmLead.Id}'>View Details</a>"); return(builder.ToString()); }
public ActionResult Create(LeadModel vm) { try { var newPerson = new Person { Email = vm.Email, PhoneNo = vm.Phone, Country = vm.Country, FirstName = !string.IsNullOrEmpty(vm.FirstName) ? vm.FirstName : "Unknown", LastName = !string.IsNullOrEmpty(vm.LastName) ? vm.LastName : "Unknown" }; _personRepository.Create(newPerson); var newCRMLead = new CRMLead { Description = vm.Message, AssignedToUserId = vm.CreatedByUserId, LeadSourceId = vm.LeadSourceId, CategoryId = vm.CategoryId, LeadStatusId = vm.StatusId, PersonId = newPerson.Id, RecievedOn = DateTime.UtcNow, CreatedByUserId = vm.CreatedByUserId }; _crmLeadRepository.Create(newCRMLead); _unitOfWork.Commit(); var result = new ApiResult <bool> { Status = true, Message = "Success" }; return(Json(result)); } catch (Exception ex) { var result = new ApiResult <bool> { Status = false, Message = ex.Message }; return(Json(result)); } }
public CrmLeadDetailWizard(CRMLead modelObj, string page) { InitializeComponent(); obj = modelObj; CustomerNameValue.Text = modelObj.name; CrmNameValue.Text = modelObj.customer; ExpectedRevenueValue.Text = modelObj.expected_revenue + "$"; ProbabilityValue.Text = modelObj.probability + "%"; EmailValue.Text = modelObj.email; PhoneValue.Text = modelObj.phone; TeamValue.Text = modelObj.team_name; NextActivityValue.Text = modelObj.next_activity; NextActivityDateValue.Text = modelObj.next_activity; ActivityDescritionValue.Text = modelObj.title_action; expectedClosingValue.Text = ""; StreetValue.Text = modelObj.street; Street2Value.Text = modelObj.street2; CityValue.Text = modelObj.city; CountryValue.Text = modelObj.country; ContactNameValue.Text = modelObj.contact_name; ContactMobileValue.Text = modelObj.mobile; int priorityCnt = Convert.ToInt32(modelObj.priority); if (page == "Lead") { btnStack.IsVisible = false; Convertbtn.IsVisible = true; } if (priorityCnt == 3) { RatingLayout3.IsVisible = true; } else if (priorityCnt == 2) { RatingLayout2.IsVisible = true; } else if (priorityCnt == 1) { RatingLayout1.IsVisible = true; } else { } }
private void crmLeadListView_ItemTapped(object sender, ItemTappedEventArgs ea) { //if (App.NetAvailable == true && App.crmList.Count != App.crmListDb.Count && App.crmListDb.Count != 0) //{ // CRMLeadDB masterItemObj = (CRMLeadDB)ea.Item; // Navigation.PushPopupAsync(new CrmLeadDetailWizard(masterItemObj, "Lead")); //} //else if (App.NetAvailable == true && App.crmList.Count == App.crmListDb.Count) //{ // CRMLeadDB masterItemObj = (CRMLeadDB)ea.Item; // Navigation.PushPopupAsync(new CrmLeadDetailWizard(masterItemObj, "Lead")); //} //else if(App.NetAvailable == true && App.crmList.Count > App.crmListDb.Count) //{ // CRMLead masterItemObj = (CRMLead)ea.Item; // Navigation.PushPopupAsync(new CrmLeadDetailWizard(masterItemObj, "Lead")); //} //else if(App.NetAvailable == false) //{ // CRMLeadDB masterItemObj = (CRMLeadDB)ea.Item; // Navigation.PushPopupAsync(new CrmLeadDetailWizard(masterItemObj, "Lead")); //} // List<CRMLead> crmLeadData = Controller.InstanceCreation().crmLeadData(); //CRMLead masterItemObj = (CRMLead)ea.Item; //Navigation.PushPopupAsync(new CrmLeadDetailWizard(masterItemObj, "Lead")); if (App.NetAvailable == true) { crmLeadListView.ItemsSource = App.crmList; var result1 = from y in App.crmListDb where y.yellowimg_string == "yellowcircle.png" select y; if (result1.Count() == 0) { try { CRMLead masterItemObj = (CRMLead)ea.Item; Navigation.PushPopupAsync(new CrmLeadDetailWizard(masterItemObj, "Lead")); } catch { CRMLeadDB masterItemObj = (CRMLeadDB)ea.Item; Navigation.PushPopupAsync(new CrmLeadDetailWizard(masterItemObj, "Lead")); } } else { try { CRMLeadDB masterItemObj = (CRMLeadDB)ea.Item; Navigation.PushPopupAsync(new CrmLeadDetailWizard(masterItemObj, "Lead")); } catch { CRMLead masterItemObj = (CRMLead)ea.Item; Navigation.PushPopupAsync(new CrmLeadDetailWizard(masterItemObj, "Lead")); } } } else if (App.NetAvailable == false) { try { CRMLeadDB masterItemObj = (CRMLeadDB)ea.Item; Navigation.PushPopupAsync(new CrmLeadDetailWizard(masterItemObj, "Lead")); } catch { CRMLead masterItemObj = (CRMLead)ea.Item; Navigation.PushPopupAsync(new CrmLeadDetailWizard(masterItemObj, "Lead")); } } }
async void phoneClicked(object sender, EventArgs e1) { var args = (TappedEventArgs)e1; try { CRMLead myobj = args.Parameter as CRMLead; var phoneDialer = CrossMessaging.Current.PhoneDialer; if (phoneDialer.CanMakePhoneCall && myobj.phone != "") { start_record = true; await DisplayAlert("Alert", "Your call will be recorded", "Ok"); DependencyService.Get <IPhoneCall>().makecall(myobj.phone); // await recorder.StopRecordingOnSilence = false; await Task.Delay(5000); // Thread.Sleep(10000); DependencyService.Get <IAudioRecorder>().StartRecording(); // var res1 = Controller.InstanceCreation().UpdateLeadCreationData("ir.attachment", "create", vals); var res = await DisplayAlert("Alert", "Save the record?", "Ok", "Cancel"); if (res) { // await recorder.StopRecording(); //stopWatch.Stop(); //await recorder.StopRecording(); //// Get the elapsed time as a TimeSpan value. //TimeSpan ts = stopWatch.Elapsed; //try //{ // var filePath = recorder.GetAudioFilePath(); // if (filePath != null) // { // // PlayButton.IsEnabled = false; // // RecordButton.IsEnabled = false; // player.Play(filePath); // } //} //catch (Exception ex) //{ // //blow up the app! // throw ex; //} DependencyService.Get <IAudioRecorder>().StopRecording(); var currentpage = new LoadingAlert(); await PopupNavigation.PushAsync(currentpage); Dictionary <string, dynamic> vals = new Dictionary <string, dynamic>(); //string UploadData = DependencyService.Get<IAudioRecorder>().RecordAudio(); string UploadData = DependencyService.Get <IAudioRecorder>().OutputString(); vals["res_model"] = "crm.lead"; vals["res_id"] = myobj.id; vals["name"] = "test.3gp"; vals["datas"] = UploadData; vals["datas_fname"] = "test.3gp"; var res1 = Controller.InstanceCreation().UpdateLeadCreationData("ir.attachment", "create", vals); DependencyService.Get <IAudioRecorder>().PlayRecording(); // var res1 = Controller.InstanceCreation().UpdateLeadCreationData("ir.attachment", "create", vals); await DisplayAlert("Alert", "Record updated successfully", "Ok"); await PopupNavigation.PopAsync(); } else { // await DisplayAlert("Alert", "Try Again", "Ok"); // await PopupNavigation.PopAsync(); } } else { start_record = false; await Navigation.PushPopupAsync(new PhoneWizard()); } } catch { CRMLeadDB myobj = args.Parameter as CRMLeadDB; var phoneDialer = CrossMessaging.Current.PhoneDialer; if (phoneDialer.CanMakePhoneCall && myobj.phone != "") { phoneDialer.MakePhoneCall(myobj.phone); } else { await Navigation.PushPopupAsync(new PhoneWizard()); } } }
public CrmLeadDetailWizard(CRMLead modelObj, string page) { InitializeComponent(); obj = modelObj; CustomerNameValue.Text = modelObj.customer; CrmNameValue.Text = modelObj.name; ExpectedRevenueValue.Text = modelObj.expected_revenue + "$"; ProbabilityValue.Text = modelObj.probability + "%"; EmailValue.Text = modelObj.email; PhoneValue.Text = modelObj.phone; TeamValue.Text = modelObj.team_name; ContactNameValue.Text = modelObj.contact_name; SalesPersonValue.Text = modelObj.sales_person; NextActValue.Text = modelObj.next_activity; expectedClosingValue.Text = modelObj.expected_closing; // SalesPersonValue.Text = modelObj. // SalesPersonValue.Text = modelObj.next_activity; // NextActivityDateValue.Text = modelObj.next_activity; //ActivityDescritionValue.Text = modelObj.title_action; // expectedClosingValue.Text = ""; //StreetValue.Text = modelObj.street; //Street2Value.Text = modelObj.street2; //CityValue.Text = modelObj.city; //CountryValue.Text = modelObj.country; //ContactNameValue.Text = modelObj.contact_name; //ContactMobileValue.Text = modelObj.mobile; crm_lead_id = obj.id; int priorityCnt = Convert.ToInt32(modelObj.priority); if (page == "Lead") { // btnStack.IsVisible = false; Convertbtn.IsVisible = true; } if (priorityCnt == 3) { RatingLayout3.IsVisible = true; } else if (priorityCnt == 2) { RatingLayout2.IsVisible = true; } else if (priorityCnt == 1) { RatingLayout1.IsVisible = true; } else { } var lead_editbtnRecognizer = new TapGestureRecognizer(); lead_editbtnRecognizer.Tapped += (s, e) => { updateStackLayout.IsVisible = true; lead_editbtn.IsVisible = false; crm_name_layout.IsVisible = true; CrmNameValue.IsVisible = false; crm_name_entry.Text = CrmNameValue.Text; ex_rev_entry.IsVisible = true; ex_rev_entry.Text = obj.expected_revenue; ExpectedRevenueValue.IsVisible = false; prob_entry.IsVisible = true; prob_entry.Text = obj.probability.ToString(); ProbabilityValue.IsVisible = false; contactname_entry.IsVisible = true; contactname_entry.Text = ContactNameValue.Text; ContactNameValue.IsVisible = false; sales_person_picker.IsVisible = true; sales_person_picker.ItemsSource = App.salespersons.Select(x => x.Value).ToList(); sales_person_picker.SelectedIndex = 0; sales_person_picker.SelectedItem = SalesPersonValue.Text; SalesPersonValue.IsVisible = false; cus_picker.IsVisible = true; cus_picker.ItemsSource = App.cusdict.Select(x => x.Value).ToList(); cus_picker.SelectedIndex = 0; cus_picker.SelectedItem = CustomerNameValue.Text; CustomerNameValue.IsVisible = false; nextact_picker.IsVisible = true; nextact_picker.ItemsSource = App.nextActivityList.Select(x => x.name).ToList(); nextact_picker.SelectedItem = NextActValue.Text; NextActValue.IsVisible = false; expe_closing_picker.IsVisible = true; try { DateTime expclosingDate = DateTime.ParseExact(modelObj.expected_closing, "yyyy-MM-dd", null); expectedClosingValue.IsVisible = false; expe_closing_picker.Date = expclosingDate; } catch { expectedClosingValue.IsVisible = false; expe_closing_picker.Date = DateTime.Today; } // expe_closing_picker.ItemsSource = App.nextActivityList.Select(x => x.name).ToList(); NextActValue.IsVisible = false; email_entry.IsVisible = true; email_entry.Text = EmailValue.Text; EmailValue.IsVisible = false; phone_entry.IsVisible = true; phone_entry.Text = PhoneValue.Text; PhoneValue.IsVisible = false; team_picker.IsVisible = true; team_picker.ItemsSource = App.salesteam.Select(x => x.Value).ToList(); team_picker.SelectedIndex = 0; team_picker.SelectedItem = TeamValue.Text; TeamValue.IsVisible = false; RatingLayout3.IsVisible = false; RatingLayout2.IsVisible = false; RatingLayout1.IsVisible = false; emptyRatingLayout3.IsVisible = true; }; lead_editbtn.GestureRecognizers.Add(lead_editbtnRecognizer); var empstar1Recognizer = new TapGestureRecognizer(); empstar1Recognizer.Tapped += (s, e) => { str1.IsVisible = true; em1.IsVisible = false; str2.IsVisible = false; str3.IsVisible = false; em2.IsVisible = true; em3.IsVisible = true; count = "1"; }; em1.GestureRecognizers.Add(empstar1Recognizer); var empstar2Recognizer = new TapGestureRecognizer(); empstar2Recognizer.Tapped += (s, e) => { str1.IsVisible = true; str2.IsVisible = true; em2.IsVisible = false; em1.IsVisible = false; str3.IsVisible = false; em3.IsVisible = true; count = "2"; }; em2.GestureRecognizers.Add(empstar2Recognizer); var empstar3Recognizer = new TapGestureRecognizer(); empstar3Recognizer.Tapped += (s, e) => { str1.IsVisible = true; str2.IsVisible = true; str3.IsVisible = true; em3.IsVisible = false; em2.IsVisible = false; em1.IsVisible = false; count = "3"; }; em3.GestureRecognizers.Add(empstar3Recognizer); var str1Recognizer = new TapGestureRecognizer(); str1Recognizer.Tapped += (s, e) => { str1.IsVisible = true; em2.IsVisible = true; em3.IsVisible = true; str2.IsVisible = false; str3.IsVisible = false; count = "1"; }; str1.GestureRecognizers.Add(str1Recognizer); var str2Recognizer = new TapGestureRecognizer(); str2Recognizer.Tapped += (s, e) => { str1.IsVisible = true; str2.IsVisible = true; str3.IsVisible = false; em1.IsVisible = false; em2.IsVisible = false; em3.IsVisible = true; count = "2"; }; str2.GestureRecognizers.Add(str2Recognizer); var str3Recognizer = new TapGestureRecognizer(); str3Recognizer.Tapped += (s, e) => { str1.IsVisible = true; str2.IsVisible = true; str3.IsVisible = false; em1.IsVisible = false; em2.IsVisible = false; em3.IsVisible = true; count = "3"; }; str3.GestureRecognizers.Add(str3Recognizer); }
private void crmLeadListView_ItemTapped(object sender, ItemTappedEventArgs ea) { CRMLead masterItemObj = (CRMLead)ea.Item; Navigation.PushPopupAsync(new CrmLeadDetailWizard(masterItemObj, "Lead")); }
async void phoneClicked(object sender, EventArgs e1) { var args = (TappedEventArgs)e1; //try //{ // CRMLead myobj = args.Parameter as CRMLead; // var phoneDialer = CrossMessaging.Current.PhoneDialer; // if (phoneDialer.CanMakePhoneCall && myobj.phone != "") // { // start_record = true; // // DependencyService.Get<IPhoneCall>().makecall("12345"); // // phoneDialer.MakePhoneCall(myobj.phone); // await DisplayAlert("Alert", "Your call will be recorded", "Ok"); // DependencyService.Get<IPhoneCall>().makecall(myobj.phone); // // await recorder.StopRecordingOnSilence = false; // await RecordAudio(); // stopWatch.Start(); // // var res1 = Controller.InstanceCreation().UpdateLeadCreationData("ir.attachment", "create", vals); // var res = await DisplayAlert("Alert", "Save the record?","Ok","Cancel"); // if (res) // { // // await recorder.StopRecording(); // stopWatch.Stop(); // await recorder.StopRecording(); // // Get the elapsed time as a TimeSpan value. // TimeSpan ts = stopWatch.Elapsed; // // Format and display the TimeSpan value. // //string elapsedTime = String.Format("{0:00}:{1:00}:{2:00}.{3:00}", // //ts.Hours, ts.Minutes, ts.Seconds, // //ts.Milliseconds / 10); // var currentpage = new LoadingAlert(); // await PopupNavigation.PushAsync(currentpage); // // TimeSpan duration = new TimeSpan(0, 1, 0, 0); // // recorder. // recorder.TotalAudioTimeout = ts; // // var filePath = recorder.GetAudioFilePath(); // Dictionary<string, dynamic> vals = new Dictionary<string, dynamic>(); // var stream = recorder.GetAudioFileStream(); // String UploadData = ""; // using (MemoryStream ms = new MemoryStream()) // { // stream.CopyTo(ms); // ms.ToArray(); // // String UploadData = Convert.ToBase64String(ms.ToArray()); // UploadData = Convert.ToBase64String(ms.ToArray()); // vals["res_model"] = "crm.lead"; // vals["res_id"] = myobj.id; // vals["name"] = "test.wav"; // vals["datas"] = UploadData; // vals["datas_fname"] = "test.wav"; // } // var bytes = Encoding.Unicode.GetBytes(UploadData); // using (var msi = new MemoryStream(bytes)) // using (var mso = new MemoryStream()) // { // using (var gs = new GZipStream(mso, CompressionMode.Compress)) // { // msi.CopyTo(gs); // } // String fin_str = Convert.ToBase64String(mso.ToArray()); // } // var res1 = Controller.InstanceCreation().UpdateLeadCreationData("ir.attachment", "create", vals); // Dictionary<string, dynamic> valslog = new Dictionary<string, dynamic>(); // valslog["name"] = myobj.phone; // valslog["partner_id"] = App.partner_id; // valslog["user_id"] = App.userid; // valslog["date"] = DateTime.Now.ToString("yyyy-MM-dd hh:mm"); // valslog["opportunity_id"] = myobj.id; // valslog["partner_phone"] = ""; // // var res2 = Controller.InstanceCreation().UpdateLeadCreationData("crm.phonecal", "create", valslog); // await DisplayAlert("Alert", "Record updated successfully", "Ok"); // await PopupNavigation.PopAsync(); // } // else // { // // await DisplayAlert("Alert", "Try Again", "Ok"); // // await PopupNavigation.PopAsync(); // } // } // else // { // start_record = false; // await Navigation.PushPopupAsync(new PhoneWizard()); // } //} try { CRMLead myobj = args.Parameter as CRMLead; var phoneDialer = CrossMessaging.Current.PhoneDialer; if (phoneDialer.CanMakePhoneCall && myobj.phone != "") { await DisplayAlert("Alert", "Your call will be recorded", "Ok"); DependencyService.Get <IPhoneCall>().makecall(myobj.phone); await Task.Delay(5000); // Thread.Sleep(10000); DependencyService.Get <IAudioRecorder>().StartRecording(); stopWatch.Start(); // var res1 = Controller.InstanceCreation().UpdateLeadCreationData("ir.attachment", "create", vals); var res = await DisplayAlert("Alert", "Save the record?", "Ok", "Cancel"); if (res) { stopWatch.Stop(); // await recorder.StopRecording(); // Get the elapsed time as a TimeSpan value. TimeSpan ts = stopWatch.Elapsed; // Format and display the TimeSpan value. string elapsedTime = String.Format("{0:00}:{1:00}:{2:00}", ts.Hours, ts.Minutes, ts.Seconds); DependencyService.Get <IAudioRecorder>().StopRecording(); var currentpage = new LoadingAlert(); await PopupNavigation.PushAsync(currentpage); Dictionary <string, dynamic> vals = new Dictionary <string, dynamic>(); //string UploadData = DependencyService.Get<IAudioRecorder>().RecordAudio(); string UploadData = DependencyService.Get <IAudioRecorder>().OutputString(); vals["res_model"] = "crm.lead"; vals["res_id"] = myobj.id; // vals["name"] = "test.3gp"; vals["name"] = myobj.name + " " + DateTime.Now.ToString("yyyy-MM-dd HH:mm"); vals["datas"] = UploadData; vals["datas_fname"] = "test.3gp"; var res1 = Controller.InstanceCreation().UpdateLeadCreationData("ir.attachment", "create", vals); Dictionary <string, dynamic> valslog = new Dictionary <string, dynamic>(); valslog["partner_phone"] = myobj.phone; valslog["partner_id"] = App.partner_id; valslog["user_id"] = App.userid; valslog["date"] = DateTime.Now.ToString("yyyy-MM-dd hh:mm"); valslog["opportunity_id"] = myobj.id; valslog["name"] = "Call Discuss"; valslog["state"] = "done"; valslog["duration"] = ts.Minutes + "." + ts.Seconds; var res2 = Controller.InstanceCreation().UpdateLeadCreationData("crm.phonecall", "create", valslog); // DependencyService.Get<IAudioRecorder>().PlayRecording(); // var res1 = Controller.InstanceCreation().UpdateLeadCreationData("ir.attachment", "create", vals); await DisplayAlert("Alert", "Record updated successfully", "Ok"); await PopupNavigation.PopAsync(); } else { await PopupNavigation.PopAsync(); // await DisplayAlert("Alert", "Try Again", "Ok"); // await PopupNavigation.PopAsync(); } } else { start_record = false; await Navigation.PushPopupAsync(new PhoneWizard()); } } catch { CRMLeadDB myobj = args.Parameter as CRMLeadDB; var phoneDialer = CrossMessaging.Current.PhoneDialer; if (phoneDialer.CanMakePhoneCall && myobj.phone != "") { phoneDialer.MakePhoneCall(myobj.phone); } else { await Navigation.PushPopupAsync(new PhoneWizard()); } } }