Example #1
0
 public void CopyFrom(MemberAddress other)
 {
     this.Member = other.Member;
     this.MemberId = (other.Member == null) ? other.MemberId : other.Member.Id;
     this.Type = other.Type;
     this.Address.CopyFrom(other.Address);
 }
Example #2
0
        public DataActionResult SubmitAddress(MemberAddress model)
        {
            if (!Permissions.HasPermission(PermissionType.EditMemberContacts, model.MemberId)) return GetLoginError();
            List<SubmitError> errors = new List<SubmitError>();
            ModelState.Remove("Member");
            ModelState.Remove("Id");

            if (ModelState.IsValid)
            {
                using (var ctx = this.GetRepository())
                {
                    var oldModel = ctx.Members.IncludePaths("Address.Member").Where(f => f.Id == model.MemberId).SelectMany(f => f.Addresses).SingleOrDefault(f => f.Id == model.Id);
                    if (oldModel == null)
                    {
                        ctx.Members.Single(f => f.Id == model.MemberId).Addresses.Add(model);
                    }
                    else
                    {
                        oldModel.CopyFrom(model);
                        if (oldModel.Member == null) oldModel.Member = ctx.Members.Single(f => f.Id == oldModel.MemberId);
                    }
                    ctx.SaveChanges();
                }
            }
            else
            {
                ModelStateToSubmitErrors(errors);
            }

            return Data(new SubmitResult<MemberAddress> { Errors = errors.ToArray(), Result = model });
        }